-
一直抛,直到处理。 处理不了,操作系统就会强制干预。查看全部
-
运行时类型识别 Run-Time Type Identification RTTI查看全部
-
dynamic_cast注意事项 只能应用于指针和引用的转换 要转换的类型中必须包含虚函数 转换成功返回子类的地址,失败返回NULL查看全部
-
。。。查看全部
-
接口类可以被继承,不能被实例化查看全部
-
接口类更多的表达一种能力或协议查看全部
-
接口类 没有任何数据成员查看全部
-
只含有纯虚函数的抽象类 称作 接口类查看全部
-
Dog Dog—狗类--eat Dog—狗类--move ~Dog ~Animal //包含纯虚函数的类也可叫虚基类或者抽象类: class Animail{ public: virtual void GetColor() = 0; }; class Dog : public Animail{ public: virtual void GetColor() {cout <<"Yellow"endl;}; }; class Pig : public Animail{ public: virtual void GetColor() {cout <<"White"<<endl;}; }; 如上代码,定义了一个动物类(Animail),类中有一函数GetColor可取得动物颜色,但动物有很多很多种,颜色自然无法确定,所以就把它声明为纯虚函数,也就是光声明函数名不去定义(实现)它,类Dog继承了Animail并实现了里面的代码,返回黄色。Bike类同样道理。有一点须要注意一下,纯虚函数不能实例化,但可以声明指针,所以上面的main函数中: Animail cAnimail; 编译器会告诉你:由于它的成员的原因,无法instantiate 抽象类Animail,并且警告你GetColor() 没有定义。 虚函数 1, 虚函数是非静态的、非内联的成员函数。 2, 若类中一个成员函数被说明为虚函数,则该成员函数在派生类中可能有不同的实现。当使用该成员函数操作指针或引用所标识的对象时,对该成员函数调用可采用动态联编。 5, 定义了虚函数后,程序中声明的指向基类的指针就可以指向其派生类。在执行过程中,该函数可以不断改变它所指向的对象,调用不同版本的成员函数,而且这些动作都是在运行时动态实现的。虚函数充分体现了面向对象程序设计的动态多态性。虚函数充分体现了面向对象程序设计的动态多态性。 纯虚函数 1, 当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,其实现留待派生类完成。 2, 纯虚函数的作用是为派生类提供一个一致的接口,它只是个函数的声明而已,它告诉编译器,在这个类中的这个纯虚函数是没有函数定义的,该类不能创建对象(即不能实例化),但可以声明指针,该类的派生类负责给出这个虚函数的重载定义。查看全部
-
抽象类无法实例化对象,只有将抽象类中所有的纯虚函数实现后才能实例化对象查看全部
-
纯虚函数 没有函数体,同时定义时在函数名 后要加上 “=0”查看全部
-
抽象类不允许实例化对象查看全部
-
含有纯虚函数的类叫做抽象类查看全部
-
有虚析构函数不一定有虚构造函数 虚函数使用virtual关键字定义,但使用virtual关键字时,并非全部是虚函数 虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数 虚析构函数是为了避免使用父类指针释放子类对象时造成内存泄露。查看全部
-
执行完子类的虚析构函数就会执行父类的虚析构函数查看全部
举报
0/150
提交
取消