那里有帮做网站的5g网络优化培训
1、什么是继承?
继承描述的是类与类之间的关系,A类继承B类,A类就拥有B类的数据和方法。
继承的方式:
公有继承(public)
保护继承(protected)
私有继承(private)
2、继承中构造和析构的顺序
子类无法继承父类的函数:构造函数、析构函数、重载=运算符
3、子类必须通过初始化列表调用父类的有参构造
调用成员或父类的有参构造,必须使用初始化列表
4、继承中的同名处理
处理方法:加作用域是最安全、最方便的处理方式
1、继承的同名数据子类中优先选择子类同名数据
2、继承的同名函数
子类重新定义了父类的同名函数,将屏蔽父类的所有同名函数。
class Base
{
public:int a;
public:Base(int a):a(a){}void func(int x){cout<<"父类的func int"<<endl;}void func(int x,int y){cout<<"父类的func int int"<<endl;}};class Son:public Base
{
public:int a;
public:Son(int x, int y):Base(x),a(y){}//子类重新定义了 父类的func函数 将屏蔽父类的所有同名函数void func(int x,int y,int z){cout<<"子类 func int int int"<<endl;}
};
void test01()
{Son ob1(10,20);ob1.func(10);//errob1.func(10,20);//err
}
如果子类非要用父类的同名函数,需要加作用域