通常,我想创建可由该类修改但不能由其他外部类修改的成员变量。我这样做的方法是将成员设为私有,然后使之成为公共获取函数。这似乎是多余的工作。有没有更简单的方法?
不,没有简单的方法。抱歉...请记住,在C ++中,实现某种惯用法通常会花费一些时间,并且可能会有些丑陋,但是作为交换,您会获得更直接,更优雅的用法。
您可以要做的是创建类的所有这些成员的结构,然后至少不必为它们中的每个实现单独的getter-只需对返回[[ C0]。
也(1):遵循@JohnFilieau的建议,以便将该成员命名为const&
,将getter命名为myclass::foo_
,这不会使实现更简单,但使使用更具可读性。
也(2):您可以为此类成员(或多个成员,使用可变参数模板包)创建myclass::foo()
模板,然后从其继承。当然,这可能会使您的构造和其他方法变得有些复杂。