-
virtual的使用限制查看全部
-
纯虚函数查看全部
-
抽象基类是本类族的公共接口,例如可通过抽象基类的指针访问到任何子类的虚函数,并对这些函数下达同一命令,从而实现多态性。查看全部
-
若是子类并没有对父类中的纯虚函数进行定义,则该子类仍然是抽象基类。查看全部
-
纯虚函数:只是在父类声明一个函数名,而该函数的定义由其子类函数完成。 抽象基类:不去定义对象,而只是作为一个基本类,起到给别的类继承的作用。特别的,凡是包含纯虚函数的类都是抽象基类,因为纯虚函数是无法被调用的。查看全部
-
关于多态的理解: 当父类有虚函数时,编译系统会自动为该类配一个虚函数表,并将类中虚函数的地址写入这个表中,表的位置由类中隐含的虚函数表指针给出,而且其每个实例化的对象均会共享这个表。其子类会继承该虚函数表,当然,子类的虚函数表的指针是重新赋予的,与父类的不同。在子类的虚函数表中,继承了父类的虚函数地址,也有子类自己的虚函数地址。此时子类中若是出现了与虚函数列表中父类函数同名的函数,则该子类函数会替换掉对应的父类函数。此时再通过父类指针调用同名函数时,就会调用到子类的函数。 这里有一点要注意到:虚函数只是将自己的地址复制到虚函数表中而已,其它则与别的成员函数并无二异。也就是说,虚函数有两个入口。而调用虚函数默认先从虚函数表中调用。所以这就说明了为什么父类指针可以调用到同名的子类函数:因为虚函数表中原来的父类函数地址被子类函数覆盖掉了。当然,同名的另一个父类函数还是存在的,只不过虚函数表中没有它的地址而已。可以通过另一个入口调用。查看全部
-
知道了查看全部
-
对象的三大特征:封装、继承、多态。查看全部
-
RTTI查看全部
-
多态:同一条命令不同的对象接收到后所执行的动作不同查看全部
-
接口类的定义:仅含有纯虚函数,而不存在其他的函数的类就叫接口类查看全部
-
实例化一个类的对象,会在内存中建立一个虚函数表(如果存在虚函数),然后依次给成员对象分配内存。查看全部
-
抽象类无法实例化对象查看全部
-
抽象类定义:含有纯虚函数的类就叫做抽象类查看全部
-
对于一个抽象类,类中个别成员函数需要在子类或更低层子类中实现,那么此时纯虚函数的作用就体现出来了查看全部
举报
0/150
提交
取消