C ++ неявный конструктор копирования для класса, который содержит другие объекты

Я знаю, что компилятор иногда предоставляет конструктор копирования по умолчанию, если вы нереализовать себя. Я не совсем понимаю, что именно делает этот конструктор. Если у меня есть класс, который содержит другие объекты, ни один из которых не имеет объявленного конструктора копирования, каким будет поведение? Например, такой класс:

class Foo {
  Bar bar;
};

class Bar {
  int i;
  Baz baz;
};

class Baz {
  int j;
};

Теперь, если я сделаю это:

Foo f1;
Foo f2(f1);

Что будет делать конструктор копирования по умолчанию? Будет ли сгенерированный компилятором конструктор копирования вFoo вызвать сгенерированный компилятором конструктор вBar скопироватьbar, который затем будет вызывать сгенерированный компилятором конструктор копирования в?Baz

Ответы на вопрос(5)

Ваш ответ на вопрос