Ссылка на объект в C++
Ссылка на объект - это другое имя для уже существующего экземпляра, а не новый объект с копией полей.
Тип пишут как User&, а при объявлении сразу
связывают с переменной через =. Запишем класс User:
#include <iostream>
#include <string>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим объект и ссылку на него, затем выведем имя дважды:
int main() {
User user("john", 21);
User& ref = user;
std::cout << ref.name << "\n";
std::cout << user.name << "\n";
return 0;
}
Изменение поля через ссылку видно у исходной
переменной - работа идет с одним объектом.
Запишем класс User:
#include <iostream>
#include <string>
class User {
public:
std::string name;
int age;
User(std::string name, int age) : name(name), age(age) {}
};
Создадим объект, сменим возраст через ссылку и выведем поле:
int main() {
User user("john", 21);
User& ref = user;
ref.age = 30;
std::cout << user.age << "\n";
return 0;
}
Создайте объект City с названием и населением.
Объявите City& на этот объект. Выведите
название через ссылку.
Создайте объект Client с полем balance.
Сделайте ссылку на него, измените баланс через ссылку
и выведите баланс из исходной переменной.