У меня ошибка с ошибкой памяти, и я не знаю, откуда она взялась. Мой вопрос: мне позволено получить адрес члена класса, находясь внутри списка инициализации конструктора, чтобы передать его объекту, которому нужна ссылка на него?C++ Получить адрес члена класса в списке инициализации конструктора
Например:
class A
{
};
class ReferencesA
{
A * const pA;
ReferencesA(A * ptrA) : pA(ptrA) { }
};
class B
{
A a;
ReferencesA referencesA;
B() : referencesA(& a) { }
};
Является ли это безопасно & a
внутри списка инициализации конструктора? Мне кажется, что это будет так, но все не всегда работает так, как мы ожидаем.
спасибо.
Выглядит нормально. Это может быть то, что «referenceA» делает с ptrA внутри своего ctor, что вызывает крушение, особенно если «a» еще не построено. – rakeshdn