【问题标题】:Const Class and member functions常量类和成员函数
【发布时间】:2021-09-19 23:30:35
【问题描述】:

当你想为一个类创建一个新的 const 实例时,你需要定义 const 函数吗?

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

【问题讨论】:

  • 您能否添加您正在尝试的代码示例

标签: c++ function class constants member-functions


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多