一个const print成员函数,一个非const print的,怎么调用,函数列表都一样的话举例
时间: 2024-09-09 17:17:42 浏览: 304
C++的const类成员函数
在C++中,当你有一个类并且其中有两个同名的成员函数,一个是`const`修饰的(常量成员函数),另一个是非`const`的(非常量成员函数),你可以这样调用它们:
```cpp
class MyClass {
public:
// const版本的print函数
void print() const; // 输出不会修改类的对象
// 非const版本的print函数
void print(); // 可能会修改类的对象
};
// 实现例子
void MyClass::print() const {
std::cout << "This is a const print." << std::endl;
}
void MyClass::print() {
std::cout << "This is a non-const print, and it can modify the object." << std::endl;
}
int main() {
MyClass obj;
// 调用const版本,由于函数前有const,它不能改变obj
obj.print(); // 这里会调用const版本
// 如果你想通过引用改变对象,需要显式地调用非const版本
obj.print(); // 这里如果不想修改对象,可以加const,如 obj.print();
// 如果希望修改对象,则直接调用非const print
obj.print(); // 这里会调用非const版本,可能会修改对象
return 0;
}
```
阅读全文