为什么虚函数声明了之后一定要定义?class A{ public: virtual void fun(); };这样只声明不定义,连接会出

[复制链接]
查看11 | 回复3 | 2010-11-30 11:57:43 | 显示全部楼层 |阅读模式
加上=0之后实际上就是声明了函数为纯虚函数,纯虚函数是不需要有定义的(即函数体),去掉=0之后必须定义函数体,你编译报错应该是unresolved external symbol,只需要加两个空函数体(即{})就可以了至于说是选择纯虚函数还是虚函数要看具体情况 附加:C++里面的函数声明之后必须要有定义的,否则就会出现上述报错的我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
回复

使用道具 举报

千问 | 2010-11-30 11:57:43 | 显示全部楼层
不知道你的连接是什么意思?在类内声明,再在外面定义是可以的,如下所示:class A{
public:
virtual void fun(); };void A::fun() { cout <<
回复

使用道具 举报

千问 | 2010-11-30 11:57:43 | 显示全部楼层
算是一个规则吧,声明了虚函数以后肯定是要有定义啊,不然就没意义了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行