-
虚函数使用限制:
1、不能修饰普通函数;
2、不能修饰静态成员函数;
3、不能修饰内敛函数(编译器会忽略inline);
4、不能修饰构造函数;
查看全部 -
如果父类构造函数也new了一块内存,不执行父类的析构函数不会有问题吗?等会儿尝试一下。
答疑:如果是子类的指针,在delete释放时会先执行子类析构,然后执行父类析构。
查看全部 -
宏定义: 避免重复包含所写的;
查看全部 -
虚函数表指针:有虚函数的情况下,实例化一个对象时,占据对象第一块内存的指针,称之为虚函数表指针
查看全部 -
如果抽象父类中的纯虚函数,子类中没有和纯虚函数同名的函数或者有但没有实现的,是直接继承来的,则子类也是抽象类,不能实例话对象;若有且实现了,则该子类不是抽象类,可以实例化对象。
查看全部 -
含有纯虚函数的类叫做抽象类
抽象类无法实例化对象
抽象类的子类也是抽象类
查看全部 -
当类中仅含有虚析构函数,不含其它虚函数时,在实例化对象是要产生虚函数表
查看全部 -
1、定义类含有数据成员,类的大小就是数据成员的大小<br>
2、类中不含有数据成员,类的大小为1(系统自动提供一个字节为类空间)<br>
3、类中不含有数据成员,但是含有指针,类的大小为指针个数*4.
4、类中不含有数据成员,含有虚函数或者虚析构函数时,系统自动为虚函数创建一个虚函数表指针,大小为指针大小。查看全部 -
在C++中异常处理通常使用try...catch...语法结构。
一个try语句可以对应多个catch语句。
一个try语句可以对应一个或多个catch语句,但不能没有catch语句
C++中使用throw抛出异常,通过catch捕获异常
查看全部 -
Typeid注意事项:
type_id返回一个type_info对象的引用如果想通过基类的指针获得派生类的数据类型,基类必须带有虚函数
只能获取对象的实际类型
查看全部 -
dynamic_cast注意事项:
只能应用于指针和引用的转换
要转换的类型中必须包含虚函数
转换成功返回子类的地址,失败返回NULL
查看全部 -
含有纯虚函数的类叫做抽象类
抽象类无法实例化对象
抽象类的子类也可以是抽象类
查看全部 -
纯虚函数没有函数体,同时在定义的时候函数名后面要加“=0”。
纯虚函数的实现原理:
在虚函数原理的基础上,虚函数表中,虚函数的地址是一个有意义的值,如果是纯虚函数就实实在在的写一个0。
查看全部 -
在C++中多态的实现是通过虚函数表实现的
当类中仅含有虚析构函数,不含其它虚函数时,会产生虚函数表
每个类只有一份虚函数表,所有该类的对象共用同一张虚函数表
两张虚函数表中的函数指针可能指向同一个函数。
查看全部 -
虚函数使用virtual关键字定义,但使用virtual关键字时,并非全部是虚函数
虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数。
虚析构函数是为了避免使用父类指针释放子类对象时造成内存泄露。 只有虚析构函数,没有虚构造函数
查看全部
举报