Class
1 特征
1.1 封装
1.2 继承
1.2.1 访问权限
基类中的成员 | public | private | protected |
---|---|---|---|
私有成员 | 不可访问 | 不可访问 | 不可访问 |
公用成员 | 公用 | 私有 | 保护 |
保护成员 | 保护 | 私有 | 保护 |
总结:
1、不管哪种继承方式,父类的私有成员只能通过基类公有成员才能访问
2、protected 只想让派生类访问这个成员
1.3 多态
2 成员
2.1 私有成员
场景1:类的拷贝构造函数可以访问另一个类对象的私有成员
封装是编译期的概念,是针对类型而非对象的,在类的成员函数中可以访问同类型实例对象的私有成员变量.
3 虚函数
3.1 虚析构函数
要点1:基类析构函数声明为虚函数,但不能为pure。
原因:每一个Derived Class Destructor都会被编译器加以扩张,以静态调用的方式调用其“每一个Virtual Base Class”和“上一层Base Class”的destructor。因此,只要缺乏任何一个base class destructors的定义,都会导致链接失败。
注:C++保证:继承体系中每一个class object的destructor都会被调用。