【发布时间】:2012-06-08 12:46:39
【问题描述】:
我正在尝试创建一个 Data 类,其对象每个都拥有一个唯一的 ID。
我希望第一个对象的 ID 为 1,第二个对象的 ID 为 2,等等。我必须使用 static int,但所有对象具有相同的 ID,而不是 1、2、 3...
这是Data 类:
class Data
{
private:
static int ID;
public:
Data(){
ID++;
}
};
我该怎么做才能让第一个 ID 为 1,第二个 ID 为 2,依此类推?
【问题讨论】:
-
确保你处理好多线程,因为变量是
static。 -
通常人们使用
long而不是int。 -
@shan:哪些人?可以是他想要的任何东西。
-
@0A0D
long比int宽。如果我们不知道我们想要多少个对象,最好使用long。 -
@shan:它将回滚到负数(如果它是无符号的,则返回零)。
long最终也会翻车。 Unsigned int 转到 65535。这完全取决于应用程序。