Person类对象的引用,如何保证此对象的内容不会在函数中被更改
时间: 2023-06-27 15:01:14 浏览: 72
如果你想要保证Person类对象的内容在函数中不被更改,可以使用const关键字,将函数声明为const函数。这样一来,函数内部就不能修改类对象的成员变量了。
例如,如果你有一个Person类:
```
class Person {
public:
std::string name;
int age;
};
```
你可以声明一个const函数来获取Person对象的信息:
```
class Person {
public:
std::string name;
int age;
std::string getInfo() const {
return name + " is " + std::to_string(age) + " years old.";
}
};
```
注意,在函数声明和定义的末尾,要加上const关键字,表示这是一个const函数。这样一来,在函数内部,你就不能修改类对象的成员变量了。
相关问题
1)在main()中,通过对象名、指向对象的指针、对象的引用三种方式来访问输出函数。 姓名1:PingXuan 地址:福州市工业路5号,电话:13959734123。 姓名2: Walle 地址:福州市工业路10号,电话:13959734456。 姓名3: Eva 地址:福州市工业路15号,电话:13959734789。 以多文件的方式设计、实现一个Person 类, 数据成员有:姓名,家庭住址,电话:定义为指针变量。 成员函数有:构造函数,析构函数,输出函数display(),更改家庭住址的成员函数change_addr。
在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;
}
```
创建person类对象家乡
创建Person类的对象并设置其家乡通常涉及以下几个步骤:
1. 定义Person类:首先,你需要定义一个名为`Person`的类,其中包含一个表示家乡的属性,例如`String hometown`。
```java
public class Person {
private String hometown;
// 构造函数
public Person(String hometown) {
this.hometown = hometown;
}
// 获取家乡的方法
public String getHometown() {
return hometown;
}
// 设置家乡的方法
public void setHometown(String hometown) {
this.hometown = hometown;
}
}
```
2. 创建对象:然后你可以通过new关键字实例化这个类,并提供家乡信息。
```java
Person person = new Person("北京"); // 如果家乡是北京
```
3. 使用对象:你可以通过对象的引用调用`getHometown()`方法来获取家乡,或使用`setHometown()`方法来改变家乡。
```java
System.out.println(person.getHometown()); // 输出:北京
// 后续如果需要更改家乡
person.setHometown("上海");
System.out.println(person.getHometown()); // 输出:上海
```
阅读全文