Я реализую базовый класс подсчета ссылок и хотел бы установить уникальный номер для каждого создаваемого объекта, который наследует этот интерфейс.
вот фрагмент кода из этого класса:
ЗАГОЛОВОК:
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 лучше всего использовать только один раз в проекте, чтобы сделать случайные числа как можно более случайными.
- этот подход является более точным, поскольку два объекта не могут совместно использовать одну и ту же ячейку памяти.
пожалуйста, посоветуйте мне.
EDIT: в какой момент создается член object_id? внутри конструктора или снаружи (до списка инициализации или после) хм хм? большое спасибо!
std::shared_ptr
для ваших объектов? - person Kerrek SB   schedule 01.01.2012this
), а затем сохраняете его? Почему бы не использоватьthis
? - person Mr Lister   schedule 01.01.2012