C++-------基类子类的相关问题

一、类的赋值兼容原则:
1.子类对象可以赋值给基类对象
class A
{
}

class B:public A
{
}

在主函数中:
/*
A a1;
B b1=a1;   //不可以,因为b1的空间比a1大,a1赋值过来不满足空间大小
*/

/*
B b1;
A a=b1;    //可以进行,a1只用到b1的部分地址
*/

2.子类对象可以当做父类对象使用
 (即通俗理解父类中的代码子类同样拥有)


3.基类指针可以指向子类对象
  (若用子类指针指向基类对象,此时基类不满足子类,子类中的自己的内存布局基类中没有,报错。)
二、子类的构造和析构
  在调用子类的构造函数时候,一定会调用基类的构造函数
  基类先构造,子类后构造
  基类后析构,子类先析构
  

三、子类基类中出现同名变量a (基类A,子类B)
  若同名变量都为public,且为公有继承
  在子类中输出this->a,此时的a是子类中的a,若要输出基类中的a,需要用域名A::a来显示调用输出


四、继承中的静态成员变量
  静态成员变量对所有家族成员都共享(静态成员变量需要在基类中声明并用基类域名进行初始化)

猜你喜欢

转载自www.cnblogs.com/god-for-speed/p/10978383.html
今日推荐