【发布时间】:2020-07-05 12:11:46
【问题描述】:
通常我想创建可由类修改但不能由其他外部类修改的成员变量。我这样做的方法是将成员设为私有,然后创建一个公共的 getter 函数。这似乎是额外的工作。有没有更简单的方法?
【问题讨论】:
-
你可以让他们
const。 -
创建成员变量
const会导致您的默认赋值运算符被删除,因此请注意这一点。你需要一个自定义的operator=(或者根本不分配,这可能是可取的) -
我不相信 C++ 中有更简单的方法。 (将它们设为 const 意味着该类也无法修改它们)
-
@Eljay:这不符合 OP 的要求。
-
如果有帮助,请将您的 getter 函数命名为变量
x,仅命名为x(),而不是getx()。它看起来更整洁。这当然是一种风格,但我不喜欢将我的任何成员变量公开。它只是接口的功能。