const 对象只能访问const 成员函数,非const 的对象可以访问任何成员函数,包括const 成员函数。
时间: 2023-04-01 07:00:27 浏览: 93
是的,const 对象只能访问 const 成员函数,而非 const 的对象可以访问任何成员函数,包括 const 成员函数。这是因为 const 对象的值不能被修改,所以只能调用不会修改对象的 const 成员函数。而非 const 的对象可以调用任何成员函数,因为它们可以被修改。
相关问题
C++const 对象只能访问const 成员函数,非const 的对象可以访问任何成员函数,包括const 成员函数。
是的,你说得没错。在 C++ 中,如果一个对象被声明为 const 类型,那么它只能访问该类中的 const 成员函数,因为这些函数不会修改对象的状态。而对于非 const 的对象,它可以访问该类中的任何成员函数,包括 const 成员函数,因为这些函数都可以修改对象的状态。在编写代码时,需要根据对象的实际情况来选择合适的成员函数。
为什么const成员函数不能调用非const成员函数
const成员函数被视为不会修改对象的状态,因此不能调用非const成员函数,因为非const成员函数有可能会修改对象的状态。如果const成员函数可以调用非const成员函数,那么就可能会破坏const成员函数的语义,因为被调用的非const成员函数可能会修改对象的状态,而const成员函数本身却不允许这样的操作。因此,如果一个成员函数需要调用其他的成员函数,而这些成员函数有可能会修改对象的状态,那么这个成员函数就不能被声明为const。