继承
基本语句
class 子类(派生类): 继承方式 父类(基类)
class A:public Base{
};
继承方式
公共继承:无变化
保护继承:父类的公共也变成了自己的保护
私有继承:父类中的所有权限的成员都变成了自己的私private
继承中的对象模型
从父类所有的非静态成员,不管权限,都属于类的对象
继承中构造和析构顺序
构造顺序:父类 - 子类
析构顺序: 子类 - 父类
继承中同名成员处理方式
访问子类:直接访问
访问父类:加作用域
如果子类中有同名函数,那么会覆盖父类所有的函数,包括重载的,所以都要加作用域
class Base{
public:
int a=100;
void func(){
cout<<"Base func"<<endl;
}
void func(int a){
cout<<"Base func"<<endl;
}
};
class Son: public Base{
public:
int a=100;
void func(){
cout<<"Son func"<<endl;
}
};
int main(){
Son A;
Base B;
cout<<A.a<<" "<<A.Base::a<<endl;
A.Base::func()