-
virtual 修饰inline函数时可以编译通过,但是系统自动忽略inline,编程普通虚函数查看全部
-
构造函数、普通函数、类内静态成员函数 不能使用virtual修饰查看全部
-
try...catch... throw... 尝试运行 捕获异常 抛出异常 try { throw int(i) } catch(int &i) { cout<<...endl; }查看全部
-
仅含有纯虚函数的类叫接口类查看全部
-
dynamic_cast 只能用于指针和引用之间的转换查看全部
-
名字的函数 运算符重载完成比对查看全部
-
typeid引用的就是type_info函数查看全部
-
只能获取对象的实际类型:即便这个类含有虚函数,也只能判断当前对象是基类还是子类,而没有办法判断当前指针是基类还是子类查看全部
-
typeid注意事项查看全部
-
要转换的类型必须包含虚函数查看全部
-
dynamic_cast注意事项查看全部
-
运行时类型识别RTTI 如果是鸟,则觅食 如果是飞机,则运输 void doSomething(Flyable *obj) { obj->takeoff (); cout<<typeid(*obj).name()<<endl;//将当前obj指向的实际的对象类型打印出来 if(typeid(*obj)==typeid(Bird))//判断当前类型是否为bird类型 { Bird *bird=dynamic_cast<Bird *>(obj);//将obj指针转化为bird型Bird *bird=dynamic_cast<要转化成的目标类型 *>(被转化的) bird->foraging();//调用觅食 } obj->land(); }查看全部
-
可以使用接口类指针指向其子类的对象,并调用子类对象中实现的接口类中的纯虚函数。查看全部
-
#include<iostream> #include<stdlib.h> #include"FighterPlane.h" using namespace std; void flyMatch(Flyable *f1,Flyable *f2) { f1->takeoff (); f1->land (); f2->takeoff (); f2->land (); } int main(void) { FighterPlane p1("001"); FighterPlane p2("002"); p1.printCode (); p2.printCode (); flyMatch(&p1,&p2); return 0; } 函数限制了传入的参数的参数体类型,并且在函数中可以放心的调用接口中定义的纯虚函数。这就是接口的最常用法 多继承的便利查看全部
-
接口类没有任何数据成员仅有成员函数查看全部
举报
0/150
提交
取消