C++空类默认有哪些成员函数?

    实际上,C++的一个空类并不会默认产生任何成员函数,只有在调用的时候根据编译器的需要生成。  

class A{
};

A a; //编译器会生成默认构造函数,实际上默认构造函数所做的事就是为a1添加一个字节的数据
class A{
};

A a1;
A a2(a1);//编译器会生成拷贝构造函数,实际上拷贝构造函数所做的事就是为a2添加一个与a1中相同的字节

然而对于赋值操作符函数和虚构函数,编译器什么都无需去做。因为对一个空类实例赋值并不需要改变什么。同时虚构函数也不需要对一个空类实例进行销毁,因为里面只包含一个字节的数据。


你可能感兴趣的:(C++空类默认有哪些成员函数?)