1、定义一个Employee类其中包括姓名、街道地址、城市和邮编等属性以及change_name和display等函数。display显示姓名、街道地址、城市和邮编等属性change_name改变对象的姓名属性。定义包含5个元素的对象数组每个元素都是Employee类型的对象。2、将姓名构造成类Name。其名和姓在该类中为保护数据成员其构造函数为接受一个指向完整姓名字符串的指针其Display函数
- Employee类定义:
class Employee{ private: Name name; string street_address; string city; string zip_code; public: Employee(Name n, string sa, string c, string zc): name(n), street_address(sa), city(c), zip_code(zc){} void display(){ cout<<"Name: "<<name.display()<<endl; cout<<"Street Address: "<<street_address<<endl; cout<<"City: "<<city<<endl; cout<<"Zip Code: "<<zip_code<<endl; } void change_name(Name n){ name = n; } };
//创建五个Employee对象 Employee employees[5] = { Employee(Name("John","Doe"),"123 Main St","New York","10001"), Employee(Name("Jane","Doe"),"456 Oak Ave","Chicago","60601"), Employee(Name("Bob","Smith"),"789 Elm St","Los Angeles","90001"), Employee(Name("Sue","Johnson"),"321 Maple St","Boston","02101"), Employee(Name("Tom","Jones"),"654 Pine Ave","San Francisco","94101") };
- Name类定义:
class Name{ protected: string first_name; string last_name; public: Name(string fn, string ln): first_name(fn), last_name(ln){} string display(){ return first_name + " " + last_name; } };
- 完整的类定义:
class Name{ protected: string first_name; string last_name; public: Name(string fn, string ln): first_name(fn), last_name(ln){} string display(){ return first_name + " " + last_name; } };
class Employee{ private: Name name; string street_address; string city; string zip_code; public: Employee(Name n, string sa, string c, string zc): name(n), street_address(sa), city(c), zip_code(zc){} void display(){ cout<<"Name: "<<name.display()<<endl; cout<<"Street Address: "<<street_address<<endl; cout<<"City: "<<city<<endl; cout<<"Zip Code: "<<zip_code<<endl; } void change_name(Name n){ name = n; } };
//创建五个Employee对象 Employee employees[5] = { Employee(Name("John","Doe"),"123 Main St","New York","10001"), Employee(Name("Jane","Doe"),"456 Oak Ave","Chicago","60601"), Employee(Name("Bob","Smith"),"789 Elm St","Los Angeles","90001"), Employee(Name("Sue","Johnson"),"321 Maple St","Boston","02101"), Employee(Name("Tom","Jones"),"654 Pine Ave","San Francisco","94101") };
- 主函数调试:
int main(){ //显示原始信息 for(int i=0;i<5;i++){ cout<<"Employee "<<i+1<<":"<<endl; employees[i].display(); cout<<endl; } //修改姓名 employees[0].change_name(Name("Johnny","Doe")); employees[2].change_name(Name("Robert","Smith")); //显示修改后的信息 for(int i=0;i<5;i++){ cout<<"Employee "<<i+1<<":"<<endl; employees[i].display(); cout<<endl; } return 0; }
输出结果:
Employee 1: Name: John Doe Street Address: 123 Main St City: New York Zip Code: 10001
Employee 2: Name: Jane Doe Street Address: 456 Oak Ave City: Chicago Zip Code: 60601
Employee 3: Name: Bob Smith Street Address: 789 Elm St City: Los Angeles Zip Code: 90001
Employee 4: Name: Sue Johnson Street Address: 321 Maple St City: Boston Zip Code: 02101
Employee 5: Name: Tom Jones Street Address: 654 Pine Ave City: San Francisco Zip Code: 94101
Employee 1: Name: Johnny Doe Street Address: 123 Main St City: New York Zip Code: 10001
Employee 2: Name: Jane Doe Street Address: 456 Oak Ave City: Chicago Zip Code: 60601
Employee 3: Name: Robert Smith Street Address: 789 Elm St City: Los Angeles Zip Code: 90001
Employee 4: Name: Sue Johnson Street Address: 321 Maple St City: Boston Zip Code: 02101
Employee 5: Name: Tom Jones Street Address: 654 Pine Ave City: San Francisco Zip Code: 94101
原文地址: https://www.cveoy.top/t/topic/bTWV 著作权归作者所有。请勿转载和采集!