-
抽象类:包含纯虚函数的类,无法实例化对象。其子类也可能是抽象类。在子类中将所有纯虚函数均实现后才能实例化对象。查看全部
-
RTTI:运行时类型识别.查看全部
-
在C++中多态的实现是通过虚函数表实现的。 当类中仅含有虚析构函数,不含其它虚函数时,也会产生虚函数表。 每个类只有一份虚函数表,所有该类的对象共用同一张虚函数表。 两张虚函数表中的函数指针可能指向同一个函数。查看全部
-
int*p = (int*)&shape;把shape强转为int型,p->&shape查看全部
-
虚函数使用virtual关键字定义,但使用virtual关键字时,并非全部是虚函数。 虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数。 虚析构函数是为了避免使用父类指针释放子类对象时造成内存泄露。查看全部
-
虚析构函数:是对子类作用的,用父类指针指向子类,则是对子类进行操作,有了虚析构函数,子类才能继承到父类的析构函数,释放时才会被调用到。保证内存不被泄露 保持习惯:析构函数前都加virtual查看全部
-
1.需采用virtual修饰析构函数,否则用父类指针释放内存,子类中释放不了,产生内存泄露。(先执行子类中的构造函数,在执行父类构造函数)2.虚函数使用限制:普通函数(全局函数,使用会产生编译错误);静态成员函数(不属于任何一个对象);内联函数(忽略inline,变成纯粹的虚函数);构造函数(编译错误)查看全部
-
在父类的参数加virtual虚函数标识,则可用父类指针释放子类内存,防止内存泄露,最好子类参数也加virtual,是为多态。查看全部
-
多态具体到语法是指使用父类指针指向子类对象,并可通过该指针调用子类的方法; 多态是基于封装和继承; 多态的语法核心是virtual关键字,必须使用virtual才能使多个类间建立多态关系; 封装、继承、多态是面向对象的三大特性;查看全部
-
接口类: 没有成员变量 只有成员函数 成员函数全是虚函数查看全部
-
应聘: 函数的覆盖和隐藏查看全部
-
虚析构函数 可以保证内存不被泄露查看全部
-
异常处理查看全部
-
void doSomething(Movable *obj) { obj->move(); if(typeid(*obj)==typeid(Bus)) { Bus *bus=dynamic_cast<Bus *>(obj); bus->carry(); } if(typeid(*obj)==typeid(Tank)) { Tank *tank=dynamic_cast<Tank*>(obj); tank->move(); tank->fire(); } };查看全部
-
接口类只能含有纯虚函数,且不能含有数据成员查看全部
举报
0/150
提交
取消