Я получил этот конструктор копирования из книги и добавил cout для сравнения значений:
Person::Person(const Person& c) {
m_pName = new string(*(c.m_pName));
m_Age = c.m_Age;
cout << m_pName << " " << &m_pName;
}
Cout выдаст 2 разных адреса.Книга, которую я читаю, не определяет, что такое m_pName сама по себе без &, она только говорит, что & m_pName - это адрес члена кучи.Какой адрес возвращается без оператора &?
edit: Вот класс и конструктор:
class Person() {
public:
Person(const string& name = 0);
Person(const Person& c);
private:
string* m_pName;
}
Person::Person(const string& name) {
m_pName = new string(name);
}