overriding virtual function differs from 'Base::afn' only by return type or calling conven
答案:2 悬赏:40 手机版
解决时间 2021-02-21 13:27
- 提问者网友:未信
- 2021-02-21 07:10
#include
using namespace std;
//-------------------
class Base
{
public:
virtual Base* afn(){cout<<"in base class\n";return this;}
};
class Sub:public Base
{
public:
virtual Sub* afn(){cout<<"in sub class\n";return this;}
};
void test(Base& s)
{
Base* p;
p=s.afn();
}
int main()
{
test(Base());
test(Sub());
}
最佳答案
- 五星知识达人网友:污到你湿
- 2021-02-21 08:04
virtual SubClass* afn()
这个你要是把afn函数里面+个参数还可以实现一下函数的的重载
如果是你这样不能实现函数的重载,因为重载函数不以返回值来区分.
把virtual SubClass* afn() 改为:
virtual Base * afn()或者Base * afn()都可以
建议你去看一下虚函数的作用;
全部回答
- 1楼网友:底特律间谍
- 2021-02-21 08:24
搜一下:overriding virtual function differs from 'Base::afn' only by return type or calling convention
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯