一道C++程序修改题

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:08:49
类Name描述名字这一概念,其中name有这一数据成员,类Address描述地址这一概念,数据成员province和city和street分别描述省市和街道,Addrees是类的派生类,请描述这两个类

#include<iostream>
#include<string>
using namespace std;
class Name
{ protected:
char name[10];
public:
Name(char a[]){strcpy(name,a);}

};
class Address:public Name
{ char province[10],city[10],street[10];
public:
Address( char a[],char b[],char c[],char d[]):name(a){strcpy(province,b);strcpy(city,c);strcpy(street,d);}
friend void Display(Address a1);
};
void Display(Address a1)
{ cout<<a1.name<<' '<<a1.province<<' '<<a1.city<<' '<<a1.street<<endl;}
void main()
{ char name[10],province[10],city[10],street[10];
cout<<"请输入姓名,省,市,街道"<<endl;
cin>>name>>province>>city>>street;
Address a1(name,province,city,street);
Display

Address( char a[],char b[],char c[],char d[]):name(a){strcpy(province,b);strcpy(city,c);strcpy(street,d);}
改成
Address( char a[],char b[],char c[],char d[]):Name(a){strcpy(province,b);strcpy(city,c);strcpy(street,d);}

我觉得应该是可以通地编译的,不过可能会出现运行时错误,因为 strcpy 函数使用前没有对拷贝作溢出处理。可能出现这个函数报错现象。

看不成,没有注释