假设我有以下代码:
Class Object{
public:
Object(int i):_val(i) {}
void doNotChangeObject() { /*Doesn't change 'val'*/}
private
int _val;
};
int main{
const Object obj(1);
obj.doNotChangeObject();
return 0;
}
这段代码是否会产生编译错误,因为我正在调用const对象的非const成员函数?
答案 0 :(得分:1)
<击> 撞击>
<击>我可以调用const对象的非成员函数
你不能在一个对象上“调用”非成员函数。但是,您可以将对象作为参数传递。
击>
我可以调用const对象的非const成员函数
没有
这个代码是否会产生编译错误?
是。您在const
对象上调用非const
成员函数。