-
代码 演示
查看全部 -
try catch throw
尝试 捕获 抛出异常
主逻辑与异常处理逻辑分离
查看全部 -
6查看全部
-
对于有虚函数存在的类对象,在对象内存单元中,虚函数表指针占据前4个内存单元,接下来才是数据成员
查看全部 -
常见异常处理
try {fun1();} catch(int) {} catch(double) {} catch(...) {}
查看全部 -
注意事项:
查看全部 -
如何识别转换
查看全部 -
RTTI运行时类型识别
查看全部 -
虚函数表 -纯虚函数
查看全部 -
虚函 数表
查看全部 -
哦,Flyable这是个纯虚的基类,这种类是不能实例化的,只能通过此种类型的指针来访问派生类。在调用函数时,函数的参数会被构造出来,所以参数也不能直接声明为这种类型,声明成指针就没问题。...
查看全部 -
如果抽象父类中的纯虚函数,子类中没有和纯虚函数同名的函数或者有但没有实现的,是直接继承来的,则子类也是抽象类,不能实例话对象;若有且实现了,则该子类不是抽象类,可以实例化对象
查看全部 -
子类继承了接口类后,进而再将接口类中的所有纯虚函数得以具体实现,表明该子类具有接口类中纯虚函数所描述的功能。
查看全部 -
#include<iostream>
#include<stdlib.h>
#include"Circle.h"
#include"Rect.h"
using namespace std;
int main(void)
{
Shape *shape1 = new Rect(3, 6);
Shape *shape2 = new Circle(5);
shape1->calcArea();//观察调用到的是谁的面积函数??
shape2->calcArea();//用到的是Shape类的面积函数
//在Shape类中的double calcArea前加上virtual关键字,就可以调用Circle类和Rect类中的面积函数
delete shape1;//观察使用父类指针是否正常销毁子类的对象??
shape1 = NULL;//在打印的最后只执行了两遍Shape的析构函数
delete shape2;
shape2 = NULL;
system("pause");
return 0;
}
查看全部 -
可以使用接口类指针指向其子类对象,并调用子类对象中实现的接口类中纯虚函数。
一个类可以继承接口类的同时也继承非接口类。 接口类中仅有纯虚函数,不能含有其它函数,也没有数据成员。
查看全部
举报