合法或错误使用类成员值的成员?

时间:2019-10-25 15:47:23

标签: c++ oop arguments member

****编辑*** 经过几句评论后,我就凭直觉同意了我的观点  (作为参数传递)

我真正追求的是应该或不应该用作班级成员的准则 ****编辑***

说该类示例具有 公共职能很少

   class Example
   {
   public:
      A(int x);
      G();
      H();
      Z();
   private:
      B();
      C();
      D();
      E()
   }

正在呼叫A,并呼叫A-> B-> C-> D-> E。 在E函数中,我们需要使用在A中获得的X参数,但B,C,D没有任何作用。

一个选择是将int x存储为类成员,然后将其获取到E中。 另一种方法是将其作为参数传递给B-> C-D-> E。

在我看来,将其存储为成员是一种不好的做法,因为它与类状态或数据无关,但是在大多数代码中,我看到这已经完成了。

曾尝试向Google查询类成员的合法用法,但未发现任何内容。

在我看来,就像oop中的成员一样,这是使用的替代性坏习惯 全球人。

我在哪里可以找到意见或数据?

我正在使用c ++

2 个答案:

答案 0 :(得分:2)

  

另一种方法是将其作为参数传递给B-> C-D-> E。

此选项很有意义。

如果E需要一个参数,那么它应该接受一个参数。如果D调用E,则D应该提供该参数。如果D无法提供其他方式,那么它也需要使用该参数,依此类推。我推荐这种方法。

  

我认为将其存储为成员是一种不好的做法,因为它与类状态或数据无关。

这是合理的推理。

还要考虑所有这些功能是否都引用对象本身。如果不是,则它们可能应该是静态成员,甚至应该是自由函数。

答案 1 :(得分:0)

A的接口来看,x似乎不是该类固有的。因此,将其保留为类的成员变量没有任何意义。

如果E需要它,则必须将其作为函数的参数。
如果D需要使用它来调用E,则需要将其作为函数的参数。
等等...

我认为您最好的选择是将x的{​​{1}}传递到A()

E()