Объекты
Концепты
Заголовок раздела «Концепты»- Объект
- rvalue, lvalue
- Ссылка
std::array
Задания
Заголовок раздела «Задания»Какие тут типы, и какие тут объекты? перечислите все.
#include <array>
struct Leg{ int length;};
struct Arm{ int power;};
struct Person{ std::array<Leg, 2> legs; Arm arms[2];};
int main(){ Person person;}Подсказка (объект) 1
Объект - это кусок памяти конкретного типа.Подсказка (объект) 2
Объект может быть любого типа.Подсказка (поля) 1
Вспомните синтаксис объявления полей в структурах.
Подсказка (поля) 2
Синтаксис объявления полей похож на синтаксис объявления переменных.
тип имя;Подсказка (тип) 1
Структура - это пользовательский тип.Подсказка (тип) 2
Типы имеют имя. Имя типа - это не обязательно один идентификатор (слово), тип может иметь и более сложное имя.
Например, std::vector<int> - это все тоже имя типа.
Подсказка (поля) 3
Определения полей это не объекты.
Поля могут быть объектами только внутри уже имеющегося другого объекта. Тип этого другого объекта должен быть тем, внутри которого объявлено поле (пользовательский тип).
Стандартные типы (такие как int) не содержат полей.
Только пользовательские типы (структуры) могут объявлять поля.
Подсказка (массив) 1
Массивы хранят в себе несколько объектов.Подсказка (массив) 2
C массивы не являются объектами в обыкновенном смысле слова. У них есть странности.Ответ
Объекты:
personperson.legsperson.legs[0]person.legs[1]person.legs[0].lengthperson.legs[1].lengthperson.arms[0]person.arms[1]person.arms[0].powerperson.arms[1].powerТипы:
PersonLegArmintstd::array<Leg, 2>