Что не так со следующим:
cout << &p2;
Как вы говорите, p2
не указатель. Концептуально это блок данных, хранящихся где-то в памяти. &p2
- адрес этого блока. Когда вы делаете:
Point p2 = p1;
... эти данные копируются в блок с меткой p1
.
Но как я могу получить адрес, который хранит p2?
Если вы не добавите указатель в структуру данных Point
, он не сохранит адрес. Как вы сказали, это не указатель.
P.S. Оператор потока hex также может быть полезен:
cout << hex << &p2 << endl;