A:每个类都有一个默认的无参数构造函数,如果没有显式定义构造函数,则编译器会自动生成一个无参数的构造函数。这个默认构造函数可以用来创建对象,如果没有提供初始化值,则成员变量将被默认初始化。
B:并非每个类都有拷贝构造函数,如果没有显式定义拷贝构造函数,则编译器会生成一个默认的拷贝构造函数。但是,如果类中包含了不能被拷贝的成员变量(如引用类型),则编译器将无法生成默认的拷贝构造函数。
C:每个类都可以定义多个构造函数,这些构造函数可以接受不同的参数,以满足不同的需求。使用不同的构造函数可以方便地创建不同的对象。
D:每个类只能有一个析构函数,用于在对象被销毁时执行清理操作。析构函数的名称与类名相同,以波浪号(~)开头。当对象超出其作用域、被 delete 或程序结束时,析构函数将被自动调用。