Nor*_*wan 4 c++ types datamember data-structures
我的老师要求我们创建自动生成的ID数据成员,一旦建立就无法修改.什么是最合适的类型?如果答案是 静态的const int ID;
如何在const时自动生成它?
由于ID必须是唯一的,因此必须确保两个实例永远不会获得相同的ID.此外,课外的任何人都不应干涉生成UID.
首先,在类中定义静态字段:
class Data
{
private:
static int newUID;
(...)
};
// The following shall be put in a .cpp file
int Data::newUID = 0;
Run Code Online (Sandbox Code Playgroud)
然后,在创建每个实例之后,它应该采用新的ID值并增加newUID计数器:
class Data
{
(...)
const int uid;
public:
Data()
: uid(newUID++)
{
}
int GetUid()
{
return uid;
}
};
Run Code Online (Sandbox Code Playgroud)
除了类之外,没有人可以访问内部newUID,为每个实例自动生成ID,并且您(几乎1)确定没有两个实例具有相同的ID号.