0

我有一些我想修改的遗留代码。在类 AI 中想要添加一些成员(比如说 10 个)并允许访问类似于以前的成员。

 class A
 {
 protected:
      double m_dmember1;
      double m_dmember2;
      double m_dmember3;

 public:
      double& Member1() { return m_dmember1; }
      double& Member2() { return m_dmember2; }
      double& Member3() { return m_dmember3; }

      A();
 }

这样就多了 10 个成员和 10 个访问者。这在我看来是多余的。

我不知道为什么以前的开发人员使用 double 作为它的访问器的引用。看起来他想要一种方法来访问仅具有简单名称的成员(我猜与 C# 属性类似的行为)。

那么,我应该将 A 类简化为此还是一个坏主意?

 class A
 {
 public:
      double Member1;
      double Member2;
      double Member3;

      A();
 }

然后在数组中使用 A 类的实例,所以也许引用是用来节省内存的?

4

1 回答 1

2

从设计的角度来看,这是同一件事——它们都打破了封装。

拥有访问器使调试变得更容易,但我会保留代码原样。

我不知道为什么以前的开发人员使用 double 作为它的访问器的引用。

因为引用会让你改变成员的值。他避免使用两种方法 (getset),而是使用一种方法。

然后在数组中使用 A 类的实例,所以也许引用是用来节省内存的?

不,因为引用是返回类型。它们根本不影响内存占用。

于 2012-08-21T11:59:40.700 回答