编译器自动生成默认构造函数的情况

    技术2022-07-10  129

    在用户没有显式的给出类中的默认成员函数时,编译器将会生成一个默认的 --- 如果用户显式的实现了则编译器将不会生成。

    但是编译器厂商并没有严格的按照语法来实现,并不是用户没有显式的给出则编译器会自动生成一份。

    什么情况下编译器才会生成?

    1.A类有默认的构造函数,B类没有定义任何函数,B类中包含A类的对象,编译器将来一定会给B类生成一份无参的构造函数。

    2.继承体系中,基类显式定义默认构造函数,子类中没有定义任何的构造函数,编译器将来一定会给B类生成一份无参的构造函数。

    3.虚拟继承中:如果子类没有显式的给出构造函数,编译器会生成一份无参的构造函数。

    4.如果类中包含虚函数,如果用户没有显式的给出默认构造函数,编译器也会生成一份。

     

     

    Processed: 0.016, SQL: 9