参照カウントの基本クラスを実装していて、そのインターフェイスを継承する作成中のオブジェクトごとに一意の番号を設定したいと思います。
そのクラスのコードスニペットは次のとおりです。
ヘッダ:
class Object
{
const long long int object_id;
public:
Object();
virtual ~Object();
};
CPP:
Object::Object() : object_id(reinterpret_cast<long long int>(&object_id))
{
}
それが安全なアプローチであるかどうか、そうでない場合はどうしてですか?私は2つの理由でrandとsrand関数を使用しませんでした:
- srand AFAIKは、プロジェクトで1回だけ使用して、可能な限り乱数をランダムにするのが最適です。
- 2つのオブジェクトが同じメモリ位置を共有できないため、このアプローチはより正確です。
アドバイスしてください。
編集:どの時点でメンバーobject_idが作成されますか?コンストラクターの内部または外部(初期化リストの前または後)hm hm?どうもありがとう!