5-3 父子关系
1)先调父类构造,再调子类构造
2)
//子类调用父类的构造函数
Son::Son(int n, int v):Father(n), val(v)
{
val = v;
cout << "子类带参构造" << endl;
}
5-4 菱形继承
使用虚继承,让多个父类只会产生一份成员给子类继承
class A
{
public:
int n;
}
class A_1:: virtual public A //virtual 虚继承,直接对父类虚继承,会产生一个虚指针,所以多出 4Bytes的内存
{
public:
int a1;
};
class A_2:: virtual public A
{
public:
int a2;
};
class AA: public A_1, public A_2
{
public:
int aa;
}
int main()
{
AA obj_aa;
obj_aa.aa;
obj_aa.a1;
obj_aa.a2;
obj_aa.n;
obj_aa.A_1::n;
}
第6章 多态
目的:多态、纯虚函数、实际开发实用多态
内容:联编、多态、纯虚函数、final
6-0:联编
定义:计算机内程序彼此关联的过程
静态联编:早期联编,程序编译阶段,函数实现和函数调用
动态联编:晚期联编,在程序运行时 (多态)
动态联编的条件
1:拥有虚函数成员的父类
2:有继承关系
3:父类类型的指针或引用 指向子类对象
文章详细阐述了C++中的继承概念,包括5-3节中提到的父子类构造函数的调用顺序,即先调用父类构造函数,再调用子类构造。5-4节讨论了菱形继承问题,指出使用虚继承可以避免重复继承的问题。6章则聚焦于多态性,解释了多态的目的以及实现多态的关键——虚函数,同时也提到了静态联编与动态联编(晚期联编,即运行时多态)的概念及其条件。
1万+

被折叠的 条评论
为什么被折叠?



