c++常对象以及常方法含义解释和代码解释
时间: 2024-03-26 12:41:57 浏览: 122
常对象指的是在定义时被 const 修饰的对象,即该对象的值是不可变的。常对象的值只能在构造时被初始化,不能在之后被修改。
常方法指的是在类的成员函数声明后加上 const 关键字,表示该成员函数不会修改对象的状态。常方法只能被常对象或常对象的引用/指针调用。
下面是一个常对象和常方法的例子:
```c++
#include <iostream>
using namespace std;
class Student {
public:
Student(int id, string name) : id(id), name(name) {}
void printInfo() const {
cout << "Student id: " << id << ", name: " << name << endl;
}
private:
int id;
string name;
};
int main() {
const Student s(1001, "Tom"); // 定义一个常对象
s.printInfo(); // 调用常方法
// s.id = 1002; // 编译错误!常对象的值不能被修改
return 0;
}
```
在这个例子中,我们定义了一个 Student 类,它有两个私有成员变量 id 和 name,以及一个公有成员函数 printInfo。printInfo 成员函数在声明后加上了 const 关键字,表示它不会修改对象的状态。
在 main 函数中,我们定义了一个常对象 s,它的值在构造时被初始化,之后不能修改。我们调用了常方法 printInfo 来输出常对象的信息,但是不能修改常对象的 id 值。如果我们尝试修改 id 值,编译器会报错。
常对象和常方法可以保证程序的安全性和可靠性,因为它们限制了对象的可变性,避免了意外的程序行为。
阅读全文