Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpObMb 28 of 150 menu
◀ ▶

Объект внутри объекта в C++

В классе можно хранить объект другого класса. Сделаем пользователя с именем и городом, в котором он живет. Город опишем своим классом.

Вложенный объект создают в списке инициализации конструктора. Запишем классы City и User:

#include <iostream> #include <string> class City { public: std::string name; City(std::string name) : name(name) {} }; class User { public: std::string name; City city; User(std::string name, City city) : name(name), city(city) {} };

Создадим объект пользователя и выведем название его города:

int main() { User user("john", City("Paris")); std::cout << user.city.name << "\n"; return 0; }

К вложенным полям обращаются цепочкой через точку. Запишем классы City и User:

#include <iostream> #include <string> class City { public: std::string name; City(std::string name) : name(name) {} }; class User { public: std::string name; City city; User(std::string name, City city) : name(name), city(city) {} };

Создадим объект и выведем имя пользователя и название города:

int main() { User user("john", City("Paris")); std::cout << user.name << "\n"; std::cout << user.city.name << "\n"; return 0; }

Один объект City можно передать нескольким пользователям - у каждого в поле будет копия данных города. Запишем классы City и User:

#include <iostream> #include <string> class City { public: std::string name; City(std::string name) : name(name) {} }; class User { public: std::string name; City city; User(std::string name, City city) : name(name), city(city) {} };

Создадим двух пользователей с одним городом и выведем названия:

int main() { City paris("Paris"); User u1("john", paris); User u2("eric", paris); std::cout << u1.city.name << "\n"; std::cout << u2.city.name << "\n"; return 0; }

Сделайте класс Department с названием отдела. Сделайте класс Employee с именем, должностью и полем Department, которое инициализируют в списке конструктора.

Создайте объект Employee и выведите имя работника и название его отдела.

Сделайте класс Address с городом и улицей. Сделайте класс Client с именем и полем Address. Выведите улицу клиента одним выражением через точку.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить