这个程序错在哪里

woshidong 2008-10-14 10:19:52
#include <iostream>
using namespace std;

class B
{
public: void virtual vf();
};

class D: public B
{
public: void vf() { cout << "This is class D" << endl; }
};

main()
{
D d, *pd;
}
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
muturenby 2008-10-14
  • 打赏
  • 举报
回复
类B中,定义了vf()函数,但未实现。要在类B外加上:void B::vf(){……}

还有,main()前不写返回类型时,系统默认的是int 型,因此要在main()函数里写上返回值!
如:main(){
……
return 0;
}
xf_pan 2008-10-14
  • 打赏
  • 举报
回复
public: void virtual vf();
类B添加vf()的定义。

main
加返回值
icesky_ff 2008-10-14
  • 打赏
  • 举报
回复
写上返回值
lann64 2008-10-14
  • 打赏
  • 举报
回复
没注意,中间还有一个d变量,那就不行了,B的虚函数还没定义呢。要么干脆弄成纯虚函数也行。
zgjxwl 2008-10-14
  • 打赏
  • 举报
回复
在C++中,main函数的返回类型没有缺省这一说,如果不显示给出main的返回类型,则编译器不会默认它的返回类型为int的
但是在C语言中,如果不显式给出main函数的返回类型,则编译器会默认它的返回类型为int
lann64 2008-10-14
  • 打赏
  • 举报
回复
除了main没写返回类型,没看出其他错。

64,631

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧