在这种情况下,类级别变量是个好主意吗?

Is a class level variable a good idea for ths situation?

本文关键字:好主意 变量 这种情况下      更新时间:2023-10-16

在某些情况下,我有以下内容:

类从服务器接收一条带有值的消息。然后向服务器发回另一条消息。我将接收到的值存储在类级别变量ex : m_number = server->args[0];

中。

之后,我再次从服务器获得一条消息,这次我在类中执行一个方法,该方法需要先前存储的变量和服务器的一些新变量。

这是一个好主意,有一个变量只是为了这个目的?

另一个例子是我从服务器得到一个变量,然后另一个系统需要我从服务器得到的信息,这就是为什么我需要存储它,因为我不知道其他系统什么时候会需要它,只是在我收到它之后的一段时间它会需要它。

谢谢

[编辑:我的回答是基于"类级别变量"的假设,您指的是类的static数据成员。另外两个人假设您指的是类的非静态数据成员。请忽略与你无关的答案:-)]

这可能不是个好主意。假设在某个地方,您希望同时与两个不同的服务器通信。现在有两个不同的值需要存储在同一个静态数据成员中。

最好是有一些对象来代表你与特定服务器的连接/会话/会话,并在其中存储与该服务器相关的任何状态。

也就是说,并不是所有的软件都需要伟大的想法才能工作,所以你可能会侥幸成功。请记住,道德上这是全球性的,而全球性往往会导致麻烦。

在这种情况下这是个好主意。一般来说,这就是需要成员变量的原因。

为什么不呢?这就是变量的全部用途,不是吗?如果您不需要记住任何东西,那么您就不会使用带有"状态"的类,而是使用函数。从你的问题的描述看来,你有一个类有多个状态,所以你需要某种机制来记住这一点。所以我认为这很好