有什么办法可以做到这一点:

class example {
public:
   const int dontModifyMe;

   example() {
      // setup for dontModifyMe..
      dontModifyMe = getValueForDontModifyMe(earlierSetup);
   }
}

example ex;
cout << ex.dontModifyMe; // works
ex.dontModifyMe = 4 // error

如果dontModifyMe不需要设置,则只使用成员初始化列表。有没有一种方法不需要显式的getter / setter方法?

最佳答案

我过去使用过的方法大致如下:

class example {
    int m_theValue;
public:
    const int &theValue = m_theValue;
}

这样,您就可以通过m_theValue在内部编辑值,同时在“public” Realm 中保持恒定的接口(interface)可用。它与getter / setter方法的效果类似,但不需要实际使用所述方法。

关于c++ - 将变量设为只读,但仍可以由C++客户端访问?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31548151/

10-12 15:01