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

标签 c++ oop arguments member

****编辑*** 经过一些评论后,基于直觉批准了我自己的意见 (作为参数传递)

我真正追求的是作为类(class)成员应该或不应该使用什么的指南 ****编辑***

假设 Class Example 有 很少有公共(public)功能

   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 作为参数传递它。

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

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

对我来说,在 oop 中使用 member 是另一种不好的做法 全局变量。

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

我正在使用 C++

最佳答案

the other way is to pass it through B->C-D->E as argument.

这个选项很有意义。

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

in my opinion storing it as a member is a bad practice because it has nothing with the class state or data

这是合理的推理。

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

关于c++ - 类成员值的合法或错误成员使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58561795/

相关文章:

powershell - 在使用参数集名称的同时使用$ args

javascript - 如何动态传递元素id并调用javascript函数?

c++ - move 哪个 throw ?

C++异或加密截断文件

c++ - 动态、静态和后期绑定(bind)有什么区别?

java - 如何在 Java 中使用用户输入引用类型、对象名称和参数在运行时创建对象

java - 为什么必须在类中而不是接口(interface)中定义方法?

c++ - 应用中的歧义

javascript - 面向对象的 JavaScript - AJAX 类

C++更改函数的变量参数