Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Только параметры нужные для инициализации элементов композитного класса, т. к. подобъекты инициализируются умолчательными значениями, при этом конструктор подобъекта все равно будет вызываться первым.
В тех случаях, когда какие-то из компонентов класса ссылки или константы или когда какой-то из компонентов подобъект, в котором есть ссылки или константы(ну или если ему необходимо передавать какие то значения.
Тогда, когда подобъекты инициализируют конструкторы без аргументов.
Тогда, когда вызываются и деструктор композитного класса, т. е. при выходе объекта из области видимости, при явном вызове деструктора композитного класса или при вызове delete.
В том порядке в котором они объявлены в композитном.
Если композитный класс был объявлен дружественным подобъекту, то при компонентном методе Y.X к приватным и публичным полям, а из внешней ф-ии возможен доступ только к публичным полям подобъекта в виде this.Y.X. (не забываем передовать в др. функцию ссылку на компонентный класс)
Если композитный класс не был объявлен дружественным, то компонентным методом X.Y только к публичным полям подобъекта, а из внешней только к дружественным методам подобъекта this.Y.X .
Композиция содержит, наследование принадлежит.
class Z
{
Y y1,y2;
public:
Z (int x1, int x2) : y1(x1), y2(x2) {};
};
class Z
{
Y y1,y2;
public:
Z (int x1) : y1(x1), y2(x1) {};
};
class Z
{
X x1;
Y y1;
public:
Z (int a1, char a2) : x1(a1), y1(a2) {};
};
class Z
{
const int X,Y;
public:
Z (int _X, int _Y) : _X(x1), _Y(x2) {};
};
Контейнерные классы -- это универсальные шаблонные классы, предназначенные для хранения элементов заданного типа в смежных областях памяти. Стандарт C++ уже включает в себя большое количество контейнеров, как часть STL (Standard Template Library -- Стандартная Библиотека Шаблонов). (ЭТО Я ПОШУТИЛ И ЭТО УЧИТЬ НЕ НАДО!!!!)
Композитный класс это класс, который содержит подобъекты другого класса.
Сначала вызываются конструкторы подобъектов в порядке их объявления, а затем вызывается конструктор самого композитного класса.
Наоборот, т. е. сначала деструктор композитного класса, а затем деструкторы подобъектов в порядке обратном их объявлению.
Сначала инициализируются Furniture в порядке их объявления, содержащиеся в первом объявленном Room, затем инициализируются Furniture в их порядке объявления, содержащиеся во втором объявленном Room, а затем уже House.
Только компонентные методы класса подобъекта имеют доступ к приватным компонентам подобъекта композитного класса, причем композитный класс должен быть объявлен как дружественный класс в подобъекте.
Доступ к публичным компонентам публичного подобъекта композитного класса имеют как и компонентные методы, так и внешние.
Доступ могут иметь только компонентные методы композитного класса, причем если только компонентный метод объявлен дружественным к подобъекту.
Вне зависимости от того, дружественен ли композитный класс подобъекту, к нему имеют доступ как компонентные так и внешние методы композитного класса.
Через конструктор подобъектов, которые перечисляются в списке инициализации композитного класса
Сначала аргументы передаются конструктору компонентного класса, а в самом конструкторе, аргументы передаются конструкторам подобъектов.