В чем разница между ссылкой на объект и член-данных объекта? Приведу пример интересующей меня детали на конструкторе копированияconstructor_and_d_and_c::constructor_and_d_and_c(const constructor_and_d_and_c& c) // передаем объект, который хотим скопировать { cout << "To, chto interesuet: " << c.n_Name << endl; cout << "copy is calling" << endl; n_Name = new string(*(c.n_Name)); // n_Mame - член данных нового объекта }; Если мы хотим посмотреть какой адрес в памяти имеет член данных, то мы можем просто написать c.n_Name, для того, чтобы узнать адрес объект c нужно обязательно добавить &. Почему это так? Ведь в аргументе уже указано, что мы принимаем ссылку на объект.
В данном примере, c.n_Name является ссылкой на член-данных объекта c, то есть это указатель на объект типа string, который содержит имя. Поэтому при выводе c.n_Name, мы получаем значение, которое хранится в данном объекте.
С другой стороны, если мы хотим получить адрес объекта c, нам необходимо добавить оператор &, чтобы получить адрес объекта, а не значение, хранящееся в данном объекте.
Таким образом, разница заключается в том, что c.n_Name обращается к значению член-данных объекта c, тогда как &c обращается к адресу объекта c в памяти.
В данном примере, c.n_Name является ссылкой на член-данных объекта c, то есть это указатель на объект типа string, который содержит имя. Поэтому при выводе c.n_Name, мы получаем значение, которое хранится в данном объекте.
С другой стороны, если мы хотим получить адрес объекта c, нам необходимо добавить оператор &, чтобы получить адрес объекта, а не значение, хранящееся в данном объекте.
Таким образом, разница заключается в том, что c.n_Name обращается к значению член-данных объекта c, тогда как &c обращается к адресу объекта c в памяти.