2011-11-19 79 views
1

我有一些情况,我有以下几种情况:对于这种情况,一个班级变量是一个好主意吗?

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

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

是它有一个变量只是用于此目的的好主意吗?

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

谢谢

+1

你的方法非常好。这就是变量的用途。 :) –

+0

你还会用什么? – Xeo

+0

澄清你是否指实例变量或静态(类)变量很重要?我认为你的意思是静态的,但是从你的问题来看并不清楚(只是看到大多数响应都是解释实例变量) – Mordachai

回答

4

[编辑:我已经回答了,通过“类级变量”,你的意思是一类的static数据成员的假设。另外两个人的回答假设你是指一个类的非静态数据成员。请忽略不相关为您:-)]

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

更好的办法是有一些对象,表示你的连接/会话/与特定服务器的会话,并存储在那里与该服务器的任何状态。

也就是说,并不是所有的软件,为了工作的需要伟大的想法,所以你可能逃脱它。只要记住道德上它是一个全球性的,而全局变量往往会导致麻烦。

+2

+1解释静态变量。好答案。 – FailedDev

0

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

0

那么为什么不呢?这实际上是变量的全部目的吗?如果你不需要记住任何东西,那么你将不会使用带有“状态”的类,而是一个函数。从你的问题中的描述看来,你有一个不止一个州的班级,所以你需要某种机制来记住这一点。所以是的,我认为这很好。

相关问题