Когда мы создаем объект, вызывается конструктор. Это не когда конструктор вызывает объект.
Можно предположить, что создание объекта - это функция, а конструктор - это еще одна функция, которая вызывается внутри него.
Предположим, что A является базовым классом, а B является производным классом,
класс А
{
}
класс B: общедоступный A
{
}
Мы будем создавать объект для класса A следующими способами:
A obja;
or
A obja = new A();
В обоих случаях можно предположить, что вызывается функция Create,
A::Create()
{
A();
}
Если вы создаете объект производного класса B, будет вызван метод Create для B,
Итак, метод Create внутри B будет выглядеть ниже,
B::Create()
{
B();
A();
}
Итак, когда мы создаем объект производного класса, сначала происходит инициализация производного класса, а затем происходит инициализация базового класса. Это не значит, что объект создан дважды.
Объект будет создан для вызова, где вы создаете объект с помощью.
B obj;
или
B obj = новый B ();
Вызов конструкторов является внутренней функциональностью, так как конструкторы вызываются в функции Create.
Примечание: Create
функция в вышеприведенном коде выполняется только в иллюстративных целях.