logo
ООП 2012

30) Композиция.

Композицией называют такое отношение между классами, при котором объекты одного являются неотъемлемой частью другого. В С++ композиция реализуется механизмом создания объектных полей, т.е. полей, которые являются объектами других классов. Количество таких полей может быть любым. Если объектов много и они однотипны, то включаемые объекты можно собирать в структуры, например массивы или списки. Конструирование объектного поля как и полей базового класса по правилам С++ предполагает вызов конструктора класса создаваемого объектного поля. При этом, как и для базовых полей, автоматически будет вызван конструктор без параметров, отсутствие которого в классе приведет к получению сообщения об ошибке error C2512. Чтобы обеспечить вызов конструктора с требуемыми значениями параметров, необходимо использовать список инициализации.