C++常对象以及常成员函数举例
时间: 2023-08-04 10:26:52 浏览: 90
当一个对象被定义为常量时,它的值不能被修改。常对象可以通过关键字 `const` 来定义。例如:
```c++
class MyClass {
int x;
public:
void setX(int n) { x = n; }
int getX() const { return x; }
};
int main() {
const MyClass obj; // obj 是常对象
// obj.setX(10); // 编译错误,不能调用非常量成员函数
int n = obj.getX(); // 可以调用常量成员函数
return 0;
}
```
在上面的例子中,`MyClass` 类有一个私有成员变量 `x` 和两个公有成员函数 `setX` 和 `getX`。`setX` 是一个非常量成员函数,所以它不能被一个常对象调用,因为它可能会修改对象的值。`getX` 是一个常量成员函数,因为它不会修改对象的值,所以它可以被一个常对象调用。
常量成员函数也可以通过在函数声明后添加 `const` 关键字来定义。例如:
```c++
class MyClass {
int x;
public:
void setX(int n) { x = n; }
int getX() const { return x; }
};
int main() {
const MyClass obj;
int n = obj.getX(); // 可以调用常量成员函数
return 0;
}
```
在上面的例子中,`getX` 函数被定义为常量成员函数,因为它不会修改对象的值,所以它可以被一个常对象调用。
阅读全文