首页 > 其他分享 >28重载-隐藏-覆盖

28重载-隐藏-覆盖

时间:2024-01-25 16:56:23浏览次数:20  
标签:函数 作用域 成员 28 Base 重载 隐藏

重载,隐藏,覆盖

  • 重载:一组函数要重载,必须处在同一作用域下,而且函数名字相同,参数列表不同。
  • 隐藏:继承结构中,派生类的同名成员,将基类的同名成员给隐藏调用了
  • 覆盖:派生类中,重写了基类中的虚函数,称为覆盖
class Base
{
public:
	Base(int data = 10) : ma(data) {}
	void show() { cout << "Base::show()" << endl; }
	void show(int) { cout << "Base:show(int)" << endl; }
protected:
	int ma;
};

class Derive : public Base
{
public:
	Derive(int data = 20) : Base(data), mb(data) {}
	void show() { cout << "Derive::show()" << endl; }
private:
	int mb;
};

int main()
{
	Derive d(50);

	d.show(); // 
	d.show(10); // 优先找的是派生类自己作用域的show方法,不会调用Base里的show方法,从而报错。可以改成show.Base::show(10);

	return 0;
}
  • 继承结构也被称作从上至下的结构,类型从下到上的转换是可以的,反之不可。
  • 类型从上到下的转换会涉及强制类型转换,可能会导致内存的非法访问。
int main()
{
	Derive d(50);
	Derive* pd = &d;
	Base b(20);
	Base* pb = &b;
	b = d; //可以
	b.show(); //只能访问Base作用域下的成员变量和成员函数
	//d = b; //不可
	pb = &d; //可以,只能访问Base作用域下的成员变量和成员函数
	//pd = &b; //不可

	return 0;
} 

标签:函数,作用域,成员,28,Base,重载,隐藏
From: https://www.cnblogs.com/sio2zyh/p/17987517

相关文章

  • [LeetCode] 2859. Sum of Values at Indices With K Set Bits
    Youaregivena0-indexedintegerarraynumsandanintegerk.Returnanintegerthatdenotesthesumofelementsinnumswhosecorrespondingindiceshaveexactlyksetbitsintheirbinaryrepresentation.Thesetbitsinanintegerarethe1'sprese......
  • elementUI表格滚动条样式修改,隐藏表格右边留白
    修改滚动条样式//设置滚动条的宽度.el-table__body-wrapper::-webkit-scrollbar{width:4px;}//设置滚动条的背景色和圆角.el-table__body-wrapper::-webkit-scrollbar-thumb{background-color:#535353;-webkit-box-shadow:inset005pxrgba(0,0,0,0.2......
  • C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
    C#Methods方法是一段代码,只有在调用时才会运行。您可以将数据(称为参数)传递给方法。方法用于执行某些操作,也被称为函数。为什么使用方法?为了重用代码:定义一次代码,然后多次使用。创建一个方法方法的定义以方法的名称开头,后跟括号()。C#提供了一些预定义的方法,您已经熟悉,例如M......
  • C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
    C#Methods方法是一段代码,只有在调用时才会运行。您可以将数据(称为参数)传递给方法。方法用于执行某些操作,也被称为函数。为什么使用方法?为了重用代码:定义一次代码,然后多次使用。创建一个方法方法的定义以方法的名称开头,后跟括号()。C#提供了一些预定义的方法,您已经熟悉,例如......
  • WPF动态绑定隐藏或显示DataGrid一列(转)
    原文连接一、添加一個FrameworkElement的代理<Window.Resources><FrameworkElementx:Key="ProxyElement"DataContext="{Binding}"/></Window.Resources> 二、用一個不可見的ContentControl綁定上一步的FrameworkElement代理<ContentControlV......
  • 28-集合(进阶版)
     单列集合:一次添加一个元素(Collection接口)注意:这里的Collection接口,指的是List和Set接口所共有的方法importjava.util.ArrayList;importjava.util.Collection;publicclassCollectionTest1{publicstaticvoidmain(String[]args){//使用多态的形......
  • 代码随想录 day28 复原IP地址 子集 子集II
    复原IP地址本题确实比较有难度主要很难一开始就发现切入点虽然被提示了和切割字符串很像还是看了题解回溯部分重点就是怎么去切割这个ip地址这里注意要尝试每个位置都去加'.'去分割后面会回溯由于是ip地址也就是提示了是四段式并且利用isValid去判断是否合法还有一些......
  • 设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总
    智慧安防平台EasyCVR平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的接入与传输,支持的接入协议包括:国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK。经常有用户咨询我们,将海康摄像头通过GB/T28181协议接到EasyCVR平台,但是在平台上为什么看不到设备?今天我们就来总结......
  • 【CVE-2022-42889】Apache Commons Text RCE
    介绍  组件介绍ApacheCommonsText组件通常在开发过程中用于占位符和动态获取属性的字符串编辑工具包,Demo举例:importorg.apache.commons.text.StringSubstitutor;classDemo{publicstaticvoidmain(String[]args){StringresolvedString=Str......
  • C++函数重载探究
    函数重载什么是函数重载简单来说,就是可以有多个相同函数名的函数,但是这些函数的参数个数 或者参数类型或者参数的类型顺序 是不一样的.通常来处理类似的功能,但是数据个数或者类型不同的情况如:计算器就是一个例子,加法可以是任何个数任何类型的数的加法但是都只......