когда у меня есть класс, и я делаю объект этого класса, например:
class Sample{
...
};
int main(){ Sample object1; ...}
Является ли название объекта просто адресом к нему? Когда я посылаю имя объекта класса в качестве аргумента функции рекурсивно, я просто посылаю адрес, не копируя весь объект в памяти?
Имя — это не адрес, а имя. Он существует в вашем исходном коде и при компиляции, но в остальном нет вообще (вроде). Это семантическая конструкция, а не значение в памяти.
Правила того, что происходит с объектом, имя которого вы используете в своем коде, можно найти в вашей книге C ++. В общем, копии выполняются по умолчанию — чтобы избежать копирования, вы передаете по ссылке или передаете указатель на объект.
Других решений пока нет …