| 2013-09-23 08:56:32 | 派生类对其基类类型对象的protected成员没有特殊访问权限; |
|
只有声明,而未定义的类,不可以作为基类; |
|
|
C++函数默认不使用动态绑定,要触发,需要满足两个条件:
|
|
|
非虚函数总是在编译时根据调用该函数的对象、引用或指针类型而确定; |
|
|
派生访问标号将控制派生类的用户对从Base继承而来的成员的访问; |
|
|
能否调用private成员,要看调用位置所处的函数权限; |
|
| 2013-09-24 08:47:56 |
C++的函数调用默认不使用动态绑定; 动态绑定条件: 1. 只有指定为虚函数的成员才能进行动态绑定; 2. 必须通过基类类型的引用或指针进行函数调用; |
|
通过引用或指针调用虚函数时,在运行时确定调用哪个函数,被调用的是与动态类型相对应的函数; 非虚函数是在编译时根据调用该函数的对象、引用或指针的类型而确定; |
|
|
类赋值操作符防止自身赋值的目的:Class A里有个指针p。赋值时,先要释放原来的p,然后再把 rhs的p复制一份。当自己赋给自己时,delete this->p的同时,rhs->p也给释放了(this和rhs其实是 同一个对象)。如果不先判断下是不是自己,就会出问题。 |
|
|
析构函数必须设计为虚函数:当基类指针指向派生类成员时,由于析构函数的顺序导致先执行基类 的析构函数,会出错。 |
|
|
构造函数不能定义为虚函数:构造函数是在对象完全构造之前运行的在构造函数运行的时候,对象 的动态类型还不完整,不能被指针调用; 赋值操作符有不需要为虚函数:不同继承层次的类,赋值操作符函数中的形参类型不同,不是同一 函数。 |
|
|
基类类型的指针(引用)只能访问对象的基类部分。 |
|
|
虚函数必须在基类和派生类中拥有同一原型,否则就变为重载函数。 |
|
|
通过指针容器解决矛盾:容器只能存储单一类型的数据 vs 基类 派生类类型。 |
|
|
抽象基类(纯虚函数)阻止用户创建对象。 |
|
|
句柄类:对基类进行包装,存放智能指针。 |
|
|
使用带比较器的关联容器对基类以及派生类成员进行存储,排序。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
浙公网安备 33010602011771号