构造函数错误

hellohaiminwa 2011-02-17 01:27:03
#include <iostream.h>
class sample
{
int value;
public:
sample(int i);
void display();
};
sample::sample(int i)
{
value=i;
}
sample::display()
{
cout<< i <<endl;
}
void main()
{
sample A(1000);
A.display();
}

错误提示:
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(14) : error C2556: 'int __thiscall sample::display(void)' : overloaded function differs only by return type from 'void __thiscall sample::display(void)'
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(7) : see declaration of 'display'
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(14) : error C2371: 'display' : redefinition; different basic types
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(7) : see declaration of 'display'
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(15) : error C2065: 'i' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\test\hello1\hello.cpp(20) : error C2264: 'display' : error in function definition or declaration; function not called
请问错在哪里?
...全文
327 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixiang1983 2011-02-17
  • 打赏
  • 举报
回复
少了默认构造函数(无参数的)吧!
如果你没写构造函数,系统自动生成一个默认构造函数,但你写了构造函数后,系统将不再生成默认的构造函数!
必须加一个默认的构造函数:
sample::sample()
{
}
cntigercat 2011-02-17
  • 打赏
  • 举报
回复
hey.
King_returns 2011-02-17
  • 打赏
  • 举报
回复
sample::display()
{
cout<< i <<endl;
}
改为
void sample::display()
{
cout<< value <<endl;
}
奔跑的小马哥 2011-02-17
  • 打赏
  • 举报
回复
支持二楼,公有函数display返回类型缺失
leotody 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdt 的回复:]

最好
#include <iostream>
using namespace std;
class sample
{
int value;
public:
sample(int i);
void display();
};
sample::sample(int i)
{
value=i;
}
void sample::display()
{
cout<< i <<……
[/Quote] 2楼正解
ouyh12345 2011-02-17
  • 打赏
  • 举报
回复
display的问题,跟构造函数无关
Eleven 2011-02-17
  • 打赏
  • 举报
回复
sample::display()
-->
void sample::display()
varding 2011-02-17
  • 打赏
  • 举报
回复
display的函数体前面少了void
真相重于对错 2011-02-17
  • 打赏
  • 举报
回复
最好
#include <iostream>
using namespace std;
class sample
{
int value;
public:
sample(int i);
void display();
};
sample::sample(int i)
{
value=i;
}
void sample::display()
{
cout<< i <<endl;
}
void main()
{
sample A(1000);
A.display();
}
fishion 2011-02-17
  • 打赏
  • 举报
回复
class sample
{
int value;
public:
sample(int i);
void display();
};
void sample::sample(int i)
{
value=i;
}
void sample::display()
{
cout<< value <<endl;
}
真相重于对错 2011-02-17
  • 打赏
  • 举报
回复
sample::display()
{
cout<< i <<endl;
}
===>
void sample::display()
{
cout<< i <<endl;
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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