【发布时间】:2015-11-14 12:05:51
【问题描述】:
我知道常量对象或函数只能对常量成员进行操作,但反过来可以吗?
【问题讨论】:
-
你为什么没试过? (答案是“是的,对象作为
const T* this传递给调用) -
编译器可以将对象隐式转换为该类型的
const&。因此,在似乎使用非 const 对象调用 const 函数的情况下,实际上使用了该对象的隐式 const 强制转换。 (就像您将非 const 对象传递给任何显式采用const&的函数一样) -
@MatsPetersson 因为在 C++ 中,成功编译和执行的东西不足以证明它是有效的,而不是例如未定义的行为。
标签: c++ class constants member