|
- 面向对象的三大特征(以重要性排序):封装、继承、多态。
- 一个对象的构造过程:class A、class C、class B : public A{private: C c;}这样的三个类,当作如下声明:B b时,构造函数调用的顺序依次是: A C B,先构造class C这样可以保证在class B中对成员数据c的操作是安全的。
- 构造函数:有class A,A a, 有函数F(A a),当调用F(a)时由于是船传值调用,在这次函数调用时会调用A的拷贝构造函数。
- 析构函数什么时候应该为虚函数:有class A; class B : public A; 有各自的构造、析构函数,A* pA = new B; delete pA; 构造函数和析构函数调用的顺序为:A(), B(), ~A()。这样就没有析构B。所以把析构函数写为虚函数virtual ~A(),就会得到我们想要的结果:A(), B(), ~B(), ~A()。
- 多态性的实现原理:虚函数表机制。
|