c++ - 派生类中参数不同的同名函数可否声明为虚函数
世界只因有你
世界只因有你 2017-06-10 09:48:57
0
1
1239

基类和派生类有同名函数时,无论参数个数相同或不同,子类对象直接调用的总是派生类的那个同名函数,如果要调用基类的同名函数,需要借助基类指针或者引用。如果现在想实现用同一个调用形式,既可以调用派生类的函数实现版本,也可以调用基类的实现版本,则要借助虚函数
但是,老师说只有函数原型完全相同的才能声明为虚函数啊,那么对于形参个数或者类型不同的同名函数,如何实现上面的功能呢?

世界只因有你
世界只因有你

全部回复(1)
学霸

你可以这样定义然后在子类里按需要重新定义:

class Base {
public:
   virtual void print(int) = 0;
   virtual void print(float) = 0;
};

这个问题的根本在于C++如何找到函数,它必须知道函数的名字和参数,所以你必须把这两样都定义清楚了,返回值倒是可以模糊一些,比如copy函数在子类里可以返回子类。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!