【1701H1】【穆晨】【171123】连续第四十四天总结
来源:互联网 发布:linux ftp命令安装 编辑:程序博客网 时间:2024/06/05 15:01
任务:冲突
冲突主要有两种情况:
(1)来自不同基类的同名成员同时出现在派生类中
来自不同类的同名成员可以用“类名::”加以区分
从类A中继承而来的同名成员可以用“A::同名成员”表示
(2)从基类继承来的成员与派生类中的新增成员同名
此时直接使用的成员是派生类中新增的同名成员//支配原则
而对基类中继承来的同名成员应使用作用域运算符
如从A类继承了y,则表示为“A::y”
class A{
protected:
int x,y;
public:
{}
};
class B{
protected:
int x;
public:
{}
};
class C:public A,public B{
int y;
void show(){
cout<<"A::x"<<A::x<<"\tB::x"<<B::x<<'\n';
cout<<"A::y"<<A::y<<"\tC::y"<<C::y<<'\n';
}
}
虚基类:
同一个基类经过多级继承出现用“类名::”无法解决的冲突
此时在虚拟继承时,将共同基类设置为虚基类
定义格式:
class 派生类名:virtual 派生方式 基类名
{
新增成员列表
}
或
class 派生类名:派生方式 virtual 基类名
{
新增成员列表
}
虚拟继承的构造函数:
从虚基类直接或间接继承的派生类构造函数的头部,必须列出虚基类构造函数的调用,除非虚基类有缺省的构造函数
调用时,虚基类构造函数的调用先于非虚基类构造函数的调用
class A{
protected:
int a;
public:
A()
{
函数体
}
};
class B:public virtual A{//虚基类定义
protected:
int b;
public:
B():A()//虚基类的直接派生类的构造函数,列出虚基类构造函数的调用
{
函数体
}
};
class C:virtual public A{
protected:
int c;
public:
C():A()//虚基类构造函数的调用
{
函数体
}
};
class D:public B,public C{
int d;
public:
D():B(),C(),A()//虚基类的间接派生类的构造函数,列出其基类和虚基类构造函数的调用
{
函数体
}
};
……
- 【1701H1】【穆晨】【171123】连续第四十四天总结
- 【1701H1】【穆晨】【171024】连续第十四天总结
- 【1701H1】【穆晨】【171103】连续第二十四天总结
- 【1701H1】【穆晨】【171113】连续第三十四天总结
- 【1701H1】【穆晨】【171203】连续第五十四天总结
- 【1701H1】【穆晨】【171213】连续第六十四天总结
- 【1701H1】【穆晨】【171014】连续第四天总结
- 【1701H1】【穆晨】【171121】连续第四十二天总结
- 【1701H1】【穆晨】【171122】连续第四十三天总结
- 【1701H1】【穆晨】【171125】连续第四十六天总结
- 【1701H1】【穆晨】【171126】连续第四十七天总结
- 【1701H1】【穆晨】【171011】连续第一天总结
- 【1701H1】【穆晨】【171012】连续第二天总结
- 【1701H1】【穆晨】【171013】连续第三天总结
- 【1701H1】【穆晨】【171015】连续第五天总结
- 【1701H1】【穆晨】【171016】连续第六天总结
- 【1701H1】【穆晨】【171017】连续第七天总结
- 【1701H1】【穆晨】【171018】连续第八天总结
- 结尾非零数的奇偶性
- 类间关系之继承
- Android的内容观察者、通知、内容提供者
- linux ubuntu 查看显卡信息
- 特征值和特征向量的几何和物理意义
- 【1701H1】【穆晨】【171123】连续第四十四天总结
- Autonomous driving application
- matplotlib 学习
- 4.17 应用举例(略)
- ACM训练半周总结—11月23日
- ubuntu-E:Encountered a section with no Package: header的解决办法
- ASP.NET 登陆与注册代码
- elasticsearch 2.4.6+kibana 4.6集群安装
- 使 WPF 支持触摸板的横向滚动