Const 类和成员函数

0 c++ class constants function member-functions

当您要创建类的新 const 实例时,是否需要定义 const 函数?

不知何故,当我尝试从 const 类实例访问它们时,我的编译器找不到“常规”(不是 const)函数。

0x5*_*453 5

是的,如果一个对象是const,则您只能const在该对象上调用函数。

如果一个函数没有被标记const,编译器必须假定它被允许改变类的成员。并且由于您无法更改const类实例的成员,因此您也无法const在该实例上调用非函数。

请注意,相反的情况是不同的 -const在非const对象上调用函数没有问题。因此,建议始终将成员函数标记为const有意义的地方。const出于许多相同的原因,标记函数参数、引用变量等很重要。社区通常将这种做法称为保持“常量正确性”。