首页 > 解决方案 > 类成员值的合法或错误成员使用?

问题描述

****编辑***在几条评论后基于预感批准了我自己的意见(作为论据传递)

我真正追求的是关于什么应该或不应该用作班级成员的指导方针****编辑***

假设 Class Example 的公共函数很少

   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->CD->E 传递。

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

试图用谷歌搜索类成员的合法用法,但没有找到任何东西。

在我看来,oop 中的成员是使用全局变量的另一种不好的做法。

我在哪里可以找到关于它的意见或数据?

我正在使用 C++

标签: c++oopargumentsmember

解决方案


另一种方法是通过 B->CD->E 作为参数传递它。

这个选项很有意义。

如果 E 需要一个参数,那么它应该有一个参数。如果 D 调用 E,则 D 应提供该参数。如果 D 不能另外提供一个,那么它也需要那个来接受那个论点,依此类推。我推荐这种方法。

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

这是合理的推理。

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


推荐阅读