1)在main()中,通过对象名、指向对象的指针、对象的引用三种方式来访问输出函数。 姓名1:PingXuan 地址:福州市工业路5号,电话:13959734123。 姓名2: Walle 地址:福州市工业路10号,电话:13959734456。 姓名3: Eva 地址:福州市工业路15号,电话:13959734789。 以多文件的方式设计、实现一个Person 类, 数据成员有:姓名,家庭住址,电话:定义为指针变量。 成员函数有:构造函数,析构函数,输出函数display(),更改家庭住址的成员函数change_addr。
时间: 2023-06-24 14:04:52 浏览: 134
在main.cpp文件中:
```C++
#include "Person.h"
#include <iostream>
using namespace std;
int main()
{
// 创建三个Person对象
Person p1("PingXuan", "福州市工业路5号", "13959734123");
Person p2("Walle", "福州市工业路10号", "13959734456");
Person p3("Eva", "福州市工业路15号", "13959734789");
// 通过对象名访问输出函数
p1.display();
p2.display();
p3.display();
// 通过指针访问输出函数
Person* ptr = &p1;
ptr->display();
// 通过引用访问输出函数
Person& ref = p2;
ref.display();
// 更改家庭住址
p1.change_addr("福州市鼓楼区五四路20号");
p1.display();
return 0;
}
```
在Person.h头文件中:
```C++
#ifndef PERSON_H
#define PERSON_H
#include <string>
class Person
{
public:
// 构造函数
Person(const std::string& name, const std::string& addr, const std::string& phone);
// 析构函数
~Person();
// 输出函数
void display() const;
// 更改家庭住址
void change_addr(const std::string& new_addr);
private:
std::string* name; // 姓名
std::string* addr; // 家庭住址
std::string* phone; // 电话
};
#endif // PERSON_H
```
在Person.cpp文件中:
```C++
#include "Person.h"
#include <iostream>
using namespace std;
// 构造函数
Person::Person(const std::string& name, const std::string& addr, const std::string& phone)
{
this->name = new string(name);
this->addr = new string(addr);
this->phone = new string(phone);
}
// 析构函数
Person::~Person()
{
delete name;
delete addr;
delete phone;
}
// 输出函数
void Person::display() const
{
cout << "姓名:" << *name << endl;
cout << "家庭住址:" << *addr << endl;
cout << "电话:" << *phone << endl;
}
// 更改家庭住址
void Person::change_addr(const std::string& new_addr)
{
*addr = new_addr;
}
```
阅读全文