c++ - 派生类中参数不同的同名函数可否声明为虚函数
世界只因有你
世界只因有你 2017-06-10 09:48:57
[C++讨论组]

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

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

全部回复(1)
欧阳克

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号