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来显示调用输出 四、继承中的静态成员变量 静态成员变量对所有家族成员都共享(静态成员变量需要在基类中声明并用基类域名进行初始化)