C++类方法调用日记
上一篇 /
下一篇 2012-09-05 16:09:24
/ 个人分类:开发知识
1.用引用方法调用虚函数
当基类类型的指针或引用使用派生类的对象时,那么对虚函数的调用实际上是调用了对象类的函数(如果该对象重写了虚函数。)
类A中的function为虚函数,B重写了function函数,B为A的派生类
A* pA=new B; //建立实例对象
pA->function()//调用对象的函数。即类B的函数。
如果类A的function不是虚函数,pA->funciton()将执行类A的function
如果类A中的function为虚函数,B重写了function函数。此时仍想调用类A的虚函数。方法如下
pA->A::function();
如果派生类没有重定义基类的虚函数,这时不该指针工引用的类型是什么都会执行基类的虚函数。
2.在设计类层次结构时要考虑成员函数是否应该是虚函数,首先要问一问该类是否可能会是一个基类,如果肯定是,那么要提供虚析构函数(即使他什么都不做)。对于成员函数的调用是通过实际对象还是可能通过基类的指针或引用来访问。回答这些问题就可以确定是否要把成员函数定义为虚函数。
3.纯虚函数:表示该类是一个抽象基类,并且类的设计者打算使该类仅仅用作基类,基类即可以给纯虚函数提供函数体,也可以不提供,不管哪一种情况,使用该类的程序不能直接声明抽象基类的对象。如果直接声明或间接声明抽象类的派生类的对象,那么必须重载纯虚函数。
收藏
举报
TAG: