Я следующий код
struct Me {
Me(Me* a) { std::cout << "Processing " << a << std::endl; }
};
int main() {
Me a(&a);
std::cout << "Created obj in " << &a << std::endl;
Me* ak = new Me(ak);
std::cout << "Created obj in " << ak << std::endl;
delete ak;
return 0;
}
, и результат был
Processing 0x7ffdbd7f0607
Created obj in 0x7ffdbd7f0607
Processing 0x5653b66b5110
Created obj in 0x5653b6d35120
Как вы можете заметить, первые 2 строки вывода были в порядке, поскольку адрес, переданный конструктору, То же, что и создаваемый объект, но почему то же самое нельзя сделать с созданием динамического c. Может ли кто-нибудь дать описание возможного решения этой проблемы?