一个const成员函数,一个非const的,怎么调用,函数列表都一样的话举例
时间: 2024-09-10 20:05:38 浏览: 41
在C++中,`const`成员函数和非`const`成员函数的主要区别在于对对象状态的改变。`const`成员函数保证不会改变对象的内部状态,而非`const`成员函数则可以。
**例子**:
假设我们有一个表示矩形的基本结构体Rectangle,它有两个非`const`成员函数`setWidth()`和`setHeight()`用于改变矩形的宽度和高度,以及两个`const`成员函数`getWidth()`和`getHeight()`用来获取尺寸:
```cpp
struct Rectangle {
int width, height;
// 非const成员函数,会改变对象的状态
void setWidth(int new_width) { width = new_width; }
void setHeight(int new_height) { height = new_height; }
// const成员函数,不会改变对象的状态,返回值而非修改
int getWidth() const { return width; }
int getHeight() const { return height; }
};
// 调用方式:
Rectangle rect;
rect.setWidth(5); // 非const函数,修改了宽
int width = rect.getWidth(); // 调用const函数,获取宽
rect.setHeight(10); // 同样是非const函数,修改了高
int height = rect.getHeight(); // 获取高,也是const函数
```
当你想要只读取对象信息时,就适合使用`const`成员函数,而当你需要修改对象的状态时,则使用非`const`成员函数。
阅读全文