【问题标题】:Public const variable or private with a get function, which is preferable?公共 const 变量或带有 get 函数的私有变量,哪个更可取?
【发布时间】:2013-03-26 16:09:59
【问题描述】:

所以我有一个经常需要在课堂外调用的变量,有人告诉我应该这样做:

class Foo{
    public:
        //stuff
    Type getVariable();
    private:
        Type Variable;
        //stuff
}

但是为什么我不能直接使用:

class Foo{
    public:
        //stuff
    const Type variable
    private:
        //stuff
}

【问题讨论】:

  • 您想更改任何成员函数中的变量吗?然后不要让它const

标签: c++ object access-specifier


【解决方案1】:

你可以,但不要期望同样的结果。

在第二种情况下,您不能再修改variable,甚至在函数内部也不行。

它们是不同的东西。

【讨论】:

  • 但就“安全性”而言,归根结底是一样的吗?这是区分这两者的唯一方面吗?
  • @PatronBernard 不,所有方面将两者区分开来。它们完全不相关。
  • @PatronBernard,公共与私有只是编译时检查。这不是真正的“安全”。如果有足够的动机,我仍然可以访问该变量并对其进行修改。 const 可能允许编译器将存储移动到只读内存区域,尝试修改它会导致访问冲突,但这因编译器和架构而异。
猜你喜欢
  • 2011-05-25
  • 2012-05-29
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2012-01-25
  • 1970-01-01
  • 2010-09-20
相关资源
最近更新 更多