-
将异常的内容显示到屏幕上 catch(string &p) {cout<<p<<endl;}查看全部
-
异常处理关键字try...catch...和throw,就是将主逻辑放在try块里,异常处理逻辑放在catch里面。throw是异常处理的标识。查看全部
-
虚函数virtual void move()=0;别忘=0,void是说明返回的无值。 virtual void move()这是虚函数void fire()这是正常实现函数。 if(typeid(*obj)==typeid(Bus))如果*obj类型是Bus类的类型 { Bus *bus= dynamic_cast<Bus*>(obj);则dynamic_cast转换类型把栈中实例化Bus类,指针,注意dynamic_cast后《类*》,因为是指针。 bus->carry(); doSomething(&b);void doSomething(Movable *obj),b是实例化的值,&b和obj都是指针查看全部
-
dynamic_cast 只能对含有虚函数的类型进行转换,同时对象需要时指针或是引用才可以查看全部
-
typeid(*b):的用法:能够看任何一个对象或者指针的类型,包括基本的数据成员的类型。他能够打印的指针是指针本身的类型 typeid(p).name()为p指针的类型 typeid(*p).name()为p指针所指对象的类型查看全部
-
typeid判别类型查看全部
-
子类继承父类,就形成isA的关系查看全部
-
子类继承父类,就形成isA的关系查看全部
-
virtual在函数中的使用限制: 1、不能修饰不同函数(函数必须是某个类的成员函数,不能是全局函数); 2、不能修饰静态成员函数; 3、不能修饰内联函数,不然会忽略inline; 4、不能修饰构造函数,能修饰析构函数。查看全部
-
多态 的形成条件1,当父类指针堆中实例化子类对象时,person *p = new Soldier; 条件2,当指针调用的父类函数与子类函数同名;条件3,当父类的同名函数被Vitual修饰时(虚函数),那么父类指针将调用子类同名函数。查看全部
-
对于虚析构函数,值得是父类的析构函数用virtual修饰,只有当父类对象指针从堆中实例化子类对象时,销毁指针,并不能销毁子类对象的内存,因而需要通过virtual使得子类继承父类的析构函数,释放堆中内存。查看全部
-
头文件加#include<typeinfo>,不然typeid无法使用查看全部
-
接口类:不需要有CPP文件,因为它根本就没有要实现的代码,甚至连构造函数和析构函数都没有,也没有数据成员,只有纯虚函数。查看全部
-
只有函数声明没有函数定义的虚函数是纯虚函数查看全部
-
纯虚函数不能进行实例化查看全部
举报
0/150
提交
取消