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

只有函数声明没有函数定义的虚函数是纯虚函数。那不写等于零可以吗?

如果写成这样virtual eat(); 而不是这样virtual eat() = 0;  这种情况是可以的吗?

正在回答

2 回答

不行的,这是C++ 对 ABSTRACT FUNCTION 的标志。 就像在JAVA 的 CLASS里 要用 abstract void eat(); 来声明

虚函数。

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

好像可以写成空的,比如这种形式:virtual eat(){};

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

onemoo

这样是给函数一个空定义,而不是定义为虚函数。
2016-01-01 回复 有任何疑惑可以回复我~
#2

奋斗一会儿 提问者 回复 onemoo

哦,明白了,谢谢你!
2016-01-08 回复 有任何疑惑可以回复我~
#3

慕斯卡1160282

写成这样virtual eat(); 而不是virtual eat() = 0; 时编译通不过,会提示 :error LNK2001: 无法解析的外部符号, 在这里指有声明没有定义,找不到相应的函数实现入口
2016-11-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

只有函数声明没有函数定义的虚函数是纯虚函数。那不写等于零可以吗?

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

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

帮助反馈 APP下载

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

公众号

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