继承篇
继承:
class Worker: public Person
{
public:
void work();
int m_iSalary;
};
// Person -> 基类/父类
// Worker -> 派生类/子类
内存中的对象
实例化的过程
Worker *p = new Worker();
delete p;
p = NULL;
实例化时会先调用 Person()
再调用 Worker()
;销毁时会先调用 ~Worker()
再调用 ~Person()
。
即 先调用 父类的构造函数, 再调用子类的构造函数;先调用子类的析构函数,再调用父类的析构函数。
继承方式
公有继承 :public
继承的时候将会把父类的 public 继承,父类的 protected 继承。
public 属性可以在任意地方调用,而 protected 属性只能在成员函数中调用
对于父类的 private 属性,子类无法继承和访问
公有继承总结:
保护继承 :protected
私有继承 :private
保护继承和私有继承均修改了父类的访问限定符
私有继承类似于 Has a 的关系
覆盖和隐藏(重载和重写)
隐藏(重写)
父子关系 成员同名 隐藏
class Person
{
public:
void play(