C++ const class
时间: 2023-10-21 16:05:35 浏览: 139
在 C++ 中,`const` 关键字可以用来限制某个变量或对象的值不被修改。同样,`const` 也可以用于类的定义中,表示该类的成员函数不能修改对象的状态。
当在类的成员函数后面加上 `const` 关键字时,编译器会在函数内部生成一个隐式的指向当前对象的指针,该指针是一个指向常量的指针,因此该函数不能修改对象的状态。
以下是一个示例:
```c++
class MyClass {
public:
int getValue() const {
return value;
}
private:
int value;
};
int main() {
const MyClass obj{5};
int val = obj.getValue(); // getValue() 是 const 函数,可以被 const 对象调用
return 0;
}
```
在上述的示例代码中,`MyClass` 类的 `getValue()` 函数被声明为 `const`,因此可以被 `const` 类型的对象调用。在 `main()` 函数中,对象 `obj` 被声明为 `const`,因此不能被修改。但由于 `getValue()` 函数被声明为 `const`,它可以被 `const` 对象调用,且不会修改对象的状态。
相关问题
C++ const class的作用
C++ 中的 const 关键字可以用于修饰类,表示该类的成员函数不能修改类的成员变量。一个被 const 修饰的类,其成员函数只能被声明为 const 成员函数。
const 成员函数可以访问类的成员变量,但是不能修改它们。这是因为 const 成员函数隐含了一个 this 指针的 const 限定,即该指针指向的对象是不可修改的。
const 类的作用主要体现在两个方面:
1. 防止意外修改类的成员变量,确保类的数据成员的不变性。
2. 提供了安全的访问类的成员变量的方式。如果一个类的 const 成员函数返回了一个指向该类的成员变量的指针或引用,那么这个指针或引用也是 const 的,从而保证了这个成员变量的不变性。
需要注意的是,const 成员函数只能调用其它 const 成员函数,并且不能修改类的成员变量,也不能调用非 const 成员函数。因此,在设计类的时候,需要根据实际需求决定哪些成员函数需要被声明为 const 成员函数。
c++ const 用法
在 C++ 中,const 是一个关键字,用于定义常量和限制变量的修改。const 可以用于以下用法:
1. 定义常量:
可以使用 const 关键字来定义常量,常量在程序运行时不能被修改。例如:
```
const int MAX_SIZE = 100;
```
2. 限制变量的修改:
使用 const 关键字可以限制变量的修改。例如:
```
const int a = 10;
int b = 20;
const int *p1 = &a; //p1 指向的值不能被修改
int * const p2 = &b; //p2 不能被修改,但是可以修改其指向的值
const int * const p3 = &a; //p3 和 p1 类似,指向的值不能被修改,指针本身也不能被修改
```
3. 函数参数中使用 const:
在函数定义中,使用 const 限制函数参数的修改。例如:
```
void foo(const int a) {
// a 不能被修改
}
```
4. 类中使用 const:
在类中,使用 const 可以定义常量成员和 const 成员函数。例如:
```
class MyClass {
public:
const int MAX_SIZE = 100;
void foo() const {
// this 指针所指向的对象的成员不能被修改
}
};
```
阅读全文