有三个人,下面是他们的信息: 姓名1:PingXuan地址:福州市工业路5号,电话:13959734123 。 姓名2:Walle 地址:福州市工业路10号,电话: 13959734456 。 姓名3:Eva 地址:福州市工业路15号,电话:13959734789 。 以多文件的方式设计、实现一个Person类, 数据成员有:姓名,家庭住址,电话:定义为指针变量。 成员函数有:构造函数,析构函数,输出函数display(),更改家庭住址的成员函数 change addr 。 分别定义默认构造函数、带参数的构造函数(采用参数初始化
时间: 2024-02-19 22:00:19 浏览: 162
2024年东南亚表面张力计市场深度研究及预测报告.pdf
)、拷贝构造函数和析构函数。以下是代码实现:
Person.h
```cpp
#ifndef PERSON_H
#define PERSON_H
#include <string>
class Person {
public:
Person(); // 默认构造函数
Person(std::string name, std::string address, std::string phone); // 带参数的构造函数
Person(const Person& p); // 拷贝构造函数
~Person(); // 析构函数
void display(); // 输出函数
void change_addr(std::string new_addr); // 更改家庭住址的成员函数
private:
std::string* name;
std::string* address;
std::string* phone;
};
#endif
```
Person.cpp
```cpp
#include "Person.h"
#include <iostream>
Person::Person() {
name = new std::string("");
address = new std::string("");
phone = new std::string("");
}
Person::Person(std::string name, std::string address, std::string phone) {
this->name = new std::string(name);
this->address = new std::string(address);
this->phone = new std::string(phone);
}
Person::Person(const Person& p) {
name = new std::string(*p.name);
address = new std::string(*p.address);
phone = new std::string(*p.phone);
}
Person::~Person() {
delete name;
delete address;
delete phone;
}
void Person::display() {
std::cout << "姓名:" << *name << std::endl;
std::cout << "家庭住址:" << *address << std::endl;
std::cout << "电话:" << *phone << std::endl;
}
void Person::change_addr(std::string new_addr) {
*address = new_addr;
}
```
使用示例:
```cpp
#include "Person.h"
int main() {
Person p1; // 默认构造函数
p1.display();
std::cout << std::endl;
Person p2("PingXuan", "福州市工业路5号", "13959734123"); // 带参数的构造函数
p2.display();
std::cout << std::endl;
Person p3 = p2; // 拷贝构造函数
p3.display();
std::cout << std::endl;
p3.change_addr("福州市工业路15号"); // 更改地址
p2.display();
p3.display();
std::cout << std::endl;
return 0;
}
```
输出结果:
```
姓名:
家庭住址:
电话:
姓名:PingXuan
家庭住址:福州市工业路5号
电话:13959734123
姓名:PingXuan
家庭住址:福州市工业路5号
电话:13959734123
姓名:PingXuan
家庭住址:福州市工业路5号
电话:13959734123
姓名:PingXuan
家庭住址:福州市工业路5号
电话:13959734123
姓名:PingXuan
家庭住址:福州市工业路15号
电话:13959734123
```
阅读全文