下面这些密码,兄弟你了解多少呢?
1。构造函数设计为保护的,表示这个类是用来帮助子类构造接口的。
2。构造函数设计为私有的,表示这个类是用来集合静态方法的,可以用公有静态方法来创建一个该对象。
3。析构函数设计为虚函数,表示这个类可以用它的引用或指针来管理子类的生命周期。
4。析构函数设计为保护的,表示这个类的生命周期只能由子类来管理。
5。析构函数设计为私有的,表示这个类是用来集合静态方法的,可以用公有静态方法来销毁一个该对象。
6。保护继承,表示子类需要父类的接口来帮助子类内部的实现,并利用父类的接口来提供面向孙子类的接口(一般都是虚函数)。
7。私有继承,表示子类需要父类的接口来帮助子类内部的实现,2者间的耦合可谓非常小,不过父类如果有数据成员或虚函数会影响子类的二进制结构。
8。隐藏父类的公有非虚函数,但是子类方法的实现中调用了父类的同名方法并保证前置后置条件不变,表示子类是一个父类的扩展(is-a)。
9。隐藏父类的公有非虚函数,但是子类方法的实现中不调用父类的同名方法,表示子类是一个父类的变形。
10。覆盖父类的虚函数,但是子类方法的实现中调用了父类的同名方法并保证前置后置条件不变,表示子类是一个父类的运行时升级(is-a)。
11。覆盖父类的虚函数,但是子类方法的实现中不调用父类的同名公有/保护方法,表示子类是一个父类的运行时变形(行为不可控,恶劣的设计)。
12。虚函数设计为保护的,表示该类的内部实现可以在运行时变形。
13。虚函数设计为私有的,表示该类的子类的实现细节和父类无关,父类不能对自己的实现细节做任何假设和约束(如果要保证安全的行为,父类和子类必须强耦合)。一个典型的例子是返回类名字。
14。虚函数设计为公有的,表示该类的接口可以在运行时变形(行为不可控,恶劣的设计)。
15。拥有swap成员函数,表示该类(有非常大可能性)使用了代理模式管理对象。