不可变的成员变量而不创建吸气剂? [重复]

问题描述 投票:2回答:1

通常,我想创建可由该类修改但不能由其他外部类修改的成员变量。我这样做的方法是将成员设为私有,然后使之成为公共获取函数。这似乎是多余的工作。有没有更简单的方法?

c++ idioms idiomatic
1个回答
1
投票

不,没有简单的方法。抱歉...请记住,在C ++中,实现某种惯用法通常会花费一些时间,并且可能会有些丑陋,但是作为交换,您会获得更直接,更优雅的用法。

可以要做的是创建类的所有这些成员的结构,然后至少不必为它们中的每个实现单独的getter-只需对返回[[ C0]。

也(1):遵循@JohnFilieau的建议,以便将该成员命名为const&,将getter命名为myclass::foo_,这不会使实现更简单,但使使用更具可读性。

也(2):您可以为此类成员(或多个成员,使用可变参数模板包)创建myclass::foo()模板,然后从其继承。当然,这可能会使您的构造和其他方法变得有些复杂。

© www.soinside.com 2019 - 2024. All rights reserved.