关于用构造函数给对象数组赋值的问题。急!!!

wuboy2000 2004-04-29 05:15:59
程序源代码:
#include<iostream.h>
#include<string.h>
class employee
{
private:
char name[40];
int age;
double salary;
public:
employee(char *n,int a,double s); //构造函数
void display();
};
employee::employee(char *n,int a,double s)
{
strcpy(name,n);
age=a;
salary=s;
}
void employee::display()
{
cout<<name;
cout<<endl;
cout<<age;
cout<<endl;
cout<<salary;
cout<<endl;
}
int main()
{
employee manyemps[3];
{
employee ("slaycke xulmberg",33,96000);
employee ("peorje posteau",45,350000);
employee ("teoberque jailbird",50,110000);
}
int x=0;
while(x<3)
{
manyemps[x].display();
x=x+1;
}
return 0;
}
这是我在一本书上看到的关于用构造函数给对象数组赋值的例程,可我按着代码敲进去才发现,他居然是错的,真是可恶至急!
错误:
***.cpp(30) : error C2512: 'employee' : no appropriate default constructor available
出错地方,主函数中的:
employee manyemps[3];
{
employee ("slaycke xulmberg",33,96000);
employee ("peorje posteau",45,350000);
employee ("teoberque jailbird",50,110000);
}
我理解它的意思是先定义一个类的对象数组(3个元素),然后通过不同的参数给他初始化。
那位大侠能告诉我他错在哪里?我试着改动但不成功,还有错。请问这部分到底应该怎么写?最好不要完全更换思路,好让我知道按它的方法到底应该怎么写才正确!
多谢!!!
...全文
190 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuboy2000 2004-04-29
  • 打赏
  • 举报
回复
哦,知道了,
employee manyemps[3]=
{
employee ( "slaycke xulmberg ",33,96000),
employee ( "peorje posteau ",45,350000),
employee ( "teoberque jailbird ",50,110000),
};
这段代码是不是就相当于:其他简单数据类型数组的复制语句,好比:
int a[3]={1,2,3};
wuboy2000 2004-04-29
  • 打赏
  • 举报
回复
呵呵,谢谢各位了:)
再问一下,为什么还需要个等号啊?为什么最后的大括号后还要加分号?
goodname 2004-04-29
  • 打赏
  • 举报
回复
1楼的掉了=号了

employee manyemps[3]=
{
employee ("slaycke xulmberg",33,96000),
employee ("peorje posteau",45,350000),
employee ("teoberque jailbird",50,110000),
};
liem 2004-04-29
  • 打赏
  • 举报
回复
建立对象数组要调用无参的构造函数
增加成员函数
exployee(){}
goodname 2004-04-29
  • 打赏
  • 举报
回复
你已经有构造函数了,
但是
main里面employee manyemps[3];
还需要一个缺省参数的构造函数来初始化数组变量
改作
class employee
{
private:
char name[40];
int age;
double salary;
public:
employee(){}//缺省构造函数
employee(char *n,int a,double s); //构造函数
void display();
};
pigpig 2004-04-29
  • 打赏
  • 举报
回复
employee manyemps[3]
{
employee ("slaycke xulmberg",33,96000),
employee ("peorje posteau",45,350000),
employee ("teoberque jailbird",50,110000),
};
这样就好了

64,642

社区成员

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

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