-
RTTI必须转换的是引用或指针,并且父类要是纯虚函数 必须包含头文件#include <typeinfo>.否则报错 利用typeid(i).name()查出变量i的类型查看全部
-
typeid注意事项查看全部
-
danamic_cast注意事项查看全部
-
typeid查看全部
-
仅有纯虚函数的类称为接口类 没有数据成员,仅有成员函数,且为纯虚函数 没有析构函数查看全部
-
纯虚函数 = 0后面要加分号查看全部
-
抽象类的子类中如果不将抽象类里的纯虚函数具体实现,那么这个子类仍是一个抽象类,不能实例化。必须要将父类所有的纯虚函数都具体实现才能实例化。查看全部
-
含有纯虚函数的类就叫做抽象类 抽象类中可以有构造函数,析构函数,数据成员 抽象类无法实例化对象 当把抽象类的所有纯虚函数都做了实现,抽象类的子类才可以实例化对象 纯虚函数在虚函数表中的内容为0查看全部
-
在C++中多态的实现是通过虚函数表实现的查看全部
-
虚函数表指针占据的是每个对象的前四个内存单元 有虚函数时,对象中首先存虚函数表指针,再存数据成员地址,没有虚函数时,首先存的是数据成员的地址。<br> 有虚函数时,先使用指针 p 指向对象,访问的虚函数表指针,(*p)取得的是虚函数表地址,再使 p++ 就指向了数据成员,(*p)就能取得数据成员的值。查看全部
-
当一个对象里面一个数据成员都没有的时候,是否意味着该对象不占用内存呢,显然不是,如图: shape对象没有数据成员,但是仍占用1个字节(因为对象至少要占用一个字节来声名自己的存在) 而circle中有一个int的成员,所以占了4个字节查看全部
-
父类子类有同名函数时,有virtual修饰=覆盖,无virtual=隐藏查看全部
-
在写析构函数的时候,最好是在析构函数的前面加上一个virtual的关键字,因为我们不知道在以后继承的时候子类会不会在析构函数中进行销毁指针和释放内存的操作,在父类的析构函数前面加上virtual可以使子类的析构函数被调用,防止内存泄漏查看全部
-
virtual关键字使用的限制: 1.不能使用普通的函数,只能是类的成员函数 2.不能使用于静态成员函数 3.不能使用于构造函数 4.不能适用于内联函数查看全部
-
每个类的头文件中都加上宏定义,防止出现类重定义现象查看全部
举报
0/150
提交
取消