请使用【答题】菜单命令或直接用VC6打开考生文件夹 下的工程proj3,其中声明了一个人员信息类Person。在Person类中数据成员nallle、age和address分别存放人员的姓名、年龄和地址。构造函数Person用以初始化数据成员。补充编制程序

admin2015-06-27  60

问题 请使用【答题】菜单命令或直接用VC6打开考生文件夹
下的工程proj3,其中声明了一个人员信息类Person。在Person类中数据成员nallle、age和address分别存放人员的姓名、年龄和地址。构造函数Person用以初始化数据成员。补充编制程序,使其功能完整。在main函数中分别创建了两个Person类对象p1和p2,并显示两个对象信息,此种情况下程序的输出应为:
jane25Beijing
Tom22Shanghai
注意:只能在函数Person中的“//**********333**********”和“//**********666**********”之间填入若干语
句,不要改动程序中的其他内容。
//proj3.h
#include
#include
usingnamespacestd;
classPerson{
public:
charname[20];
intage;
char*address,
public:
Person(char*_name,int_age,char*_add=NULL);//构造函数
voidinfo_display();//人员信息显示
~Person();//析构函数
};
voidwriteToFile(constchar*path
="");
//proj3.cpp
#include
#include
#include"proj3.h"
usingnamespacestd;
Person::Person(char*_name,int_age,char*_add):age(_age)
{
//把字符串name复制到数组name中
//使address指向一个动态空间,把字符串_
add复制到该数组中。
//********333********
//********666********
}
voidPerson::info_display()
{
cout<if(address!_NULL)
cout<}
Person::~Person()
{
if(address!=NULL)
delete[]address;
}
voidmain()
{
charadd[100];
strcpy(add,"Beijing");
Personp1("jane",25,add);
p1.infodisplay();
strcpy(add,"Shanghai");
Person*p2=newPerson("Tom",22,
add);
p2->info_display();
deletep2;
writeToFile("");
}

选项

答案strcpy(name,_name); address = new char[strlen(_add) + 1]; strcpy(address,_add);

解析 主要考查考生对构造函数的掌握,根据题目要求,首先使用strcpy()函数把字符串_name复制到数组name中,然后使用new语句分配一个动态空间,使address指向空间首地址,最后把字符串_add复制到该数组中。
转载请注明原文地址:https://kaotiyun.com/show/r9BD777K
0

最新回复(0)