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

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

    全局函数的两个参数是两个抽象类类型指针,为什么普通的传两个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++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信