定义一个Employee类,其中包括表示姓名、街道地址、城市和邮编等属性,包括chage_name()和display()等函数;display()使用cout语句显示姓名、街道地址、城市和邮编等属性,函数change_name()改变对象的姓名属性,实现并测试这个类。
解:
源程序:
#includeiostream.h
#includestring.h
classEmployee
{
private:
charname[30];
charstreet[30];
charcity[18];
charzip[6];
public:
Employee(char*n,char*str,char*ct,char*z);
voidchange_name(char*n);
voiddisplay();
};
Employee::Employee(char*n,char*str,char*ct,char*z)
{
strcpy(name,n);
strcpy(street,str);
strcpy(city,ct);
strcpy(zip,z);
}
voidEmployee::change_name(char*n)
{
strcpy(name,n);
}
voidEmployee::display()
{
coutname\"\"street\"\";
coutcity\"\"zip;
}
voidmain(void)
{
Employeee1(\"张三\",\"平安大街3号\",\"北京\",\"100000\");
e1.display();
coutendl;
e1.change_name(\"李四\");
e1.display();
coutendl;
}
程序运行输出:
张三平安大街3号北京100000
李四平安大街3号北京100000
这个程序是教材的题的答案。其中有两个点我不太明白,第一,现在我学习C上机写小程序在#includeiostream.h要加一行usingnamespacestd;但是这个程序没加,没有错误。加了以后就出现错误。至于usingnamespacestd;到底是什么作用,我也不清楚。望解答。第二个问题,Employee(char*n,char*str,char*ct,char*z);这个构造函数在具体实施时,也就是
Employee::Employee(char*n,char*str,char*ct,char*z)
{
strcpy(name,n);
strcpy(street,str);
strcpy(city,ct);
strcpy(zip,z);
}
strcpy是什么意思,而且在主函数中,输入参数Employeee1(\"张三\",\"平安大街3号\",\"北京\",\"100000\");本来是指针的,直接用“\"”符号,就是张三两边有两个类似双引号的东西。不明白这个语法。不知道有没有耐心给我解答。。。谢谢了。
|