Предположим, у меня есть базовый класс "человек". и я публично наследую класс «студент» от базового класса «человек». я не написал конструктор копирования для базы и производного класса. теперь предположим, что я пишу в основной программе
main()
{
student sobj1("name", "computer science");
student sobj2=sobj1;
}
теперь во второй строке будет вызван конструктор копирования, сгенерированный компилятором по умолчанию для студента, но перед выполнением будет вызван конструктор копирования базового класса по умолчанию, который создает анонимный объект и инициализирует его, затем управление возвращается к копии конструктор студента, который инициализирует студенческую часть объекта.
это демонстрация ситуации, когда мы не пишем конструктор копирования
теперь предположим, что мы пишем конструктор копирования для обоих классов, тогда я проверил это, когда я пишу
student sobj2=sobj1;
что происходит, эта строка вызывает конструктор копирования студента, который работает, но конструктор копирования базового класса в этом случае вызываться не будет (будет вызываться конструктор по умолчанию базового класса). Мой вопрос: почему?