-
此处的coordinator函数 是从Coordinate类中 继承的 所以要现在 circle.h文件中 声明 定义一下 然后在构造函数中引用 开堆中内存 之后再析构函数中将其释放掉 (切记 此处并非继承 而是引用)查看全部
-
virtual在函数中的使用限制: 1、不能修饰不同函数(函数必须是某个类的成员函数,不能是全局函数); 2、不能修饰静态成员函数; 3、不能修饰内联函数,不然会忽略inline; 4、不能修饰构造函数,能修饰析构函数。查看全部
-
父类指针,指向子类对象查看全部
-
在构造函数中申请堆内存,在析构函数中释放掉堆内存查看全部
-
多态 的形成: 条件1,当父类指针堆中实例化子类对象时,person *p = new Soldier; 条件2,当指针调用的父类函数与子类函数同名; 条件3,当父类的同名函数被Vitual修饰时(虚函数),那么父类指针将调用子类同名函数。查看全部
-
多态的定义查看全部
-
常见的异常: 1、数组下标越界; 2、除数为0; 3、内存不足(少见,多为内存泄漏或死循环造成)。查看全部
-
RTTI(Run Time Type Identification):运行时类型识别 dynamic_cast注意事项: 1、只能应用于指针和引用的转换; Bird *bird = dynamic_cast<Bird *>(obj); bird->foraging(); 2、要转换的类型中必须包含虚函数(多态类型); 3、转换成功会返回子类的地址,失败返回NULL。 typeid注意事项: typeid(*obj).name; if(typeid(*obj) == typeid(Bird)) 1、type_id返回一个type_info对象的引用; 2、如果想通过基类的指针获得派生类的数据类型,基类必须带有虚函数(多态类型); 3、只能获取对象的实际类型,无法判断指针的实际类型。查看全部
-
含有纯虚函数的类是抽象类。 仅有纯虚函数的类是接口类:(没有数据成员,只有成员函数,且都是纯虚函数)。查看全部
-
抛出子类对象,用父类捕获查看全部
-
获取抛出的字符串查看全部
-
try与catch可以是一对多的关系,对异常进行细致的处理查看全部
-
try里处理主逻辑,如果try里运行出现异常,会通过throw抛出参数给catch捕获,执行catch的代码块。查看全部
-
virtual不可以修饰构造函数、内联函数、静态函数、普通函数,只能修饰成员函数,析构函数。 虚函数:修饰成员函数,当父类指针指向子类对象;指针调用同名函数,将调用子类函数,实现的是多态功能。 虚析构函数:父类指针指向子类对象,若子类存在指针数据成员,申请堆中内存,则父类析构函数需要定义为虚析构函数,这样在销毁指针之前,先销毁子类的析构函数,销毁子类动态内存。查看全部
-
Flyable *p=new Bird p 的类型为 Flyabl * *p 的类型为 Bird查看全部
举报
0/150
提交
取消