一道C++题目的错误,关于char*的,请帮忙解决啊

#include<iostream.h>voidmain(){classpeople{public:people(){firstname=secondname=race=... #include <iostream.h>

void main()
{
class people
{
public:
people()
{
firstname=secondname=race=NULL;
age=0;
}
~people()
{
delete []firstname;
delete []secondname;
delete []race;
}
void setFirstname(char *_firstname)
{
name =new char[strlen(_firstname)+1];
strcpy(name,_name);
}
char *getFirstname()
{
return firstname;
}
void setSecondname(char *_secondname)
{
name =new char[strlen(_secondname)+1];
strcpy(name,_secondname);
}
char *getSecondname()
{

return secondname;
}
void setRace( char *_race)
{
race = new char[strlen(_race)+1];
strcpy(race,_race);
}
char *getRace()
{
return race;
}
void setAge(int _age)
{
age = _age;
}
int getAge()
{
return age;
}
void output()
{
cout<<"姓名"<<firstname<<secondname<<ends
<<"年龄"<<age<<ends
<<"种族"<<race<<endl;
}
private:
char *firstname;
char *secondname;
int age;
char *race;
};
people father;
people mother;
people girl;
father.setFirstname("陈");
father.setSecondname("冠希");
father.setRace("汉族");
father.setAge(28);
mother.setFirstname("阿");
mother.setSecondname("娇");
mother.setRace("汉族");
mother.setAge(23);
girl.setFirstname(father.getFirstname);
girl.setSecondname(mother.getSecondname);
girl.setAge(16);
girl.setRace(mother.getRace);
cout<<"爸爸:"<<endl;
father.output();
cout<<"妈妈"<<endl;
mother.output();
cout<<"女儿"<<endl;
girl.output();
}
girl.setFirstname(father.getFirstname);
girl.setSecondname(mother.getSecondname);
girl.setRace(mother.getRace);
其中这三句都发生同样的错误cannot convert parameter 1 from 'char *(void)' to 'char *'
我不明白为什么类里返回的类型变成了char *(void)了。
请详细解释啊,谢谢啊
展开
 我来答
幻影浮云
2008-06-19 · 超过32用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:90.1万
展开全部
#include <iostream.h>

void main()
{
class people
{
public:
people()
{
firstname=secondname=race=NULL;
age=0;
}
~people()
{
delete []firstname;
delete []secondname;
delete []race;
}
void setFirstname(char *_firstname)
{//将name改为firstname,_name改为_firstname,并包含头文件<string.h>
name =new char[strlen(_firstname)+1];
strcpy(name,_name);
}
char *getFirstname()
{
return firstname;
}
void setSecondname(char *_secondname)
{ //将name改为secondname
name =new char[strlen(_secondname)+1];
strcpy(name,_secondname);
}
char *getSecondname()
{

return secondname;
}
void setRace( char *_race)
{
race = new char[strlen(_race)+1];
strcpy(race,_race);
}
char *getRace()
{
return race;
}
void setAge(int _age)
{
age = _age;
}
int getAge()
{
return age;
}
void output()
{
cout<<"姓名"<<firstname<<secondname<<ends
<<"年龄"<<age<<ends
<<"种族"<<race<<endl;
}
private:
char *firstname;
char *secondname;
int age;
char *race;
};
people father;
people mother;
people girl;
father.setFirstname("陈");
father.setSecondname("冠希");
father.setRace("汉族");
father.setAge(28);
mother.setFirstname("阿");
mother.setSecondname("娇");
mother.setRace("汉族");
mother.setAge(23);
girl.setFirstname(father.getFirstname); //改为girl.setFirstname(father.getFirstname());
girl.setSecondname(mother.getSecondname); //改为girl.setSecondname(mother.getSecondname());
girl.setAge(16);
girl.setRace(mother.getRace); //改为girl.setRace(mother.getRace());
cout<<"爸爸:"<<endl;
father.output();
cout<<"妈妈"<<endl;
mother.output();
cout<<"女儿"<<endl;
girl.output();
}
//按照提示改完后能够运行,不过LZ将类放在函数里面,这种习惯可不好哦。要学会用C++对象的方法编程.
#include <iostream.h>
#include <string.h>

class people
{
public:
people()
{
firstname=secondname=race=NULL;
age=0;
}
~people()
{
delete []firstname;
delete []secondname;
delete []race;
}
void setFirstname(char *_firstname)
{
firstname =new char[strlen(_firstname)+1];
strcpy(firstname,_firstname);
}
char *getFirstname()
{
return firstname;
}
void setSecondname(char *_secondname)
{
secondname =new char[strlen(_secondname)+1];
strcpy(secondname,_secondname);
}
char *getSecondname()
{

return secondname;
}
void setRace( char *_race)
{
race = new char[strlen(_race)+1];
strcpy(race,_race);
}
char *getRace()
{
return race;
}
void setAge(int _age)
{
age = _age;
}
int getAge()
{
return age;
}
void output()
{
cout<<"姓名"<<firstname<<secondname<<ends
<<"年龄"<<age<<ends
<<"种族"<<race<<endl;
}
private:
char *firstname;
char *secondname;
int age;
char *race;
};

void main()
{

people father;
people mother;
people girl;
father.setFirstname("陈");
father.setSecondname("冠希");
father.setRace("汉族");
father.setAge(28);
mother.setFirstname("阿");
mother.setSecondname("娇");
mother.setRace("汉族");
mother.setAge(23);
girl.setFirstname(father.getFirstname());
girl.setSecondname(mother.getSecondname());
girl.setAge(16);
girl.setRace(mother.getRace());
cout<<"爸爸:"<<endl;
father.output();
cout<<"妈妈"<<endl;
mother.output();
cout<<"女儿"<<endl;
girl.output();
}
//我要分啊,嘿嘿。
fposkln
2008-06-18 · TA获得超过412个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:0
展开全部
没有编译器,不能帮你排错
你定位到错误附近
将 char*(void)错误的位置
强制转换为 (char*)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
研究报告站
2008-06-18 · TA获得超过195个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:349万
展开全部
在那三句的get函数后面加个括号吧,是函数来的,不是属性。
另外,我是长了见识了,第一次看到有人再main里面定义类的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花香人间
2008-06-18 · TA获得超过189个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:338万
展开全部
girl.setFirstname(father.getFirstname);
因为father.getFirstname()是个函数,加个()就行了;也许还会有连锁的错误,自己找吧...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanarri
2008-06-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:8647万
展开全部
调用函数没加括号
getFirstname()
getsecondname()...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式