对于这种情况,班级变量是个好主意吗?

时间:2011-11-19 16:40:24

标签: c++ oop

我遇到以下情况:

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

然后我再次从服务器收到一条消息,这次我在类中执行一个方法,该方法需要来自早期的存储变量和来自服务器的一些新变量。

为此目的设置一个变量是个好主意吗?

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

由于

3 个答案:

答案 0 :(得分:4)

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

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

最好是拥有一个代表您与特定服务器的连接/会话/会话的对象,并存储与该服务器相关的任何状态。

尽管如此,并非所有软件都需要好的想法才能工作,所以你可能会侥幸逃脱。请记住,在道德上它是一个全球性的,全局性通常会导致麻烦。

答案 1 :(得分:0)

在这种情况下,这是一个很好的主意。通常,这就是您需要的成员变量。

答案 2 :(得分:0)

为什么不呢?这实际上是变量的全部目的不是吗?如果你没有记住任何事情,那么你就不会使用一个带有#34;状态"相反,一个功能。从您问题中的描述看来,您似乎有一个具有多个状态的类,因此您需要某种机制来记住它。所以是的,我觉得它很好。