-
virtual不能修饰普通函数、静态函数、内联函数查看全部
-
只能获取对象实际类型不能知道指针的实际类型
查看全部 -
dynamic_cast:
只能用于指针和引用的转换
要转换的类型必须有虚函数
转换成功返回子类地址,失败返回NULL
查看全部 -
dynamic_cast将父类映射成某子类类型
查看全部 -
抽象类子类也可以是抽象类。
子类当把抽象的父类的纯虚函数全部定义以后将可以实例化。
查看全部 -
纯虚函数:没有函数体且=0
virtual double calcuPerimeter() = 0;
含有纯虚函数的类叫抽象类
查看全部 -
虚析构函数为了让父类指针指向子类对象,后销毁父类指针也可以销毁子类的指针以防内存泄漏。
Shape *shape = new Circle(10.0); delete shape; shape = NULL;
原理:
父类有虚析构函数时,父类指针指向子类,通过子类的虚函数表指针找到子类的虚析构函数,执行完子类的虚析构函数后自动执行父类的虚析构函数。
查看全部 -
没有数据成员,用1来表示其存在。有数据成员1直接消失
查看全部 -
构造函数不能是虚函数。析构可以
查看全部 -
内联函数不能用virtual,会使得inline失效
查看全部 -
静态成员函数不属于别的任何一个类,不可以用virtual
查看全部 -
普通函数不能是虚函数。
查看全部 -
typeid注意事项:
type_id返回一个type_info对象的引用
如果想通过基类的指针获得派生类的数据类型,基类必须带有虚函数
只能获取对象的实际类型
查看全部 -
dynamic_cast注意事项:
只能应用于指针和引用的转换
要转换的类型中必须包含虚函数
转换成功返回子类的地址,失败返回NULL
查看全部 -
常见的异常
数据下标越界
除数为零
内存不足
查看全部
举报
0/150
提交
取消