我正在实现一个引用计数基类,并希望为每个正在创建的继承该接口的对象设置唯一编号。
这是该类的代码片段:
标题:
class Object
{
const long long int object_id;
public:
Object();
virtual ~Object();
};
共产党:
Object::Object() : object_id(reinterpret_cast<long long int>(&object_id))
{
}
我很怀疑这是否安全,如果不是,为什么不呢?由于两个原因,我没有使用 rand 和 srand 函数:
- srand AFAIK 最好在项目中仅使用一次以使随机数尽可能随机。
- 这种方法更精确,因为两个对象不能共享相同的内存位置。
请给我建议。
编辑:在什么时候创建成员 object_id?在构造函数内部或外部(在初始化列表之前或之后)嗯嗯?多谢!