为了账号安全,请及时绑定邮箱和手机立即绑定

如何解释全局函数的参数是两个抽象类类型的指针

    全局函数的两个参数是两个抽象类类型指针,为什么普通的传两个Flyable类型就会出错

void flyMatch(Flyable *f1, Flyable *f2);//正确的是这样的
void flyMatch(Flyable f1, Flyable f2);//这样为什么不行

求解????????

正在回答

3 回答

哦,Flyable这是个纯虚的基类,这种类是不能实例化的,只能通过此种类型的指针来访问派生类。

在调用函数时,函数的参数会被构造出来,所以参数也不能直接声明为这种类型,声明成指针就没问题。

3 回复 有任何疑惑可以回复我~
#1

SimonKong 提问者

非常感谢!真的谢谢啦,我以为没人回复我呢
2015-12-13 回复 有任何疑惑可以回复我~

d:\程序\c++\test\接口类\接口类\main.cpp(14): error C2259: “Flyable”: 不能实例化抽象类

void flyMatch(Flyable f1, Flyable f2);

另外说明我是按照教学视频里的那样,定义Flyable是一个接口类

0 回复 有任何疑惑可以回复我~

第一条语句:flyMatch函数的参数类型是指针。

第二条语句:是flyMatch函数的重载声明,其参数类型为Flyable。

这看起来没什么错,也许错误在别处,你得到的报错是什么?

0 回复 有任何疑惑可以回复我~
#1

SimonKong 提问者

你看一下楼下,谢谢你能回啊
2015-12-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66223    人
  • 解答问题       334    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

如何解释全局函数的参数是两个抽象类类型的指针

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号