实际上,C++的一个空类并不会默认产生任何成员函数,只有在调用的时候根据编译器的需要生成。
class A{
};
A a; //编译器会生成默认构造函数,实际上默认构造函数所做的事就是为a添加一个字节的数据class A{
};
A a1;
A a2(a1);//编译器会生成拷贝构造函数,实际上拷贝构造函数所做的事就是为a2添加一个与a1中相同的字节
然而对于赋值操作符函数和虚构函数,编译器什么都无需去做。因为对一个空类实例赋值并不需要改变什么。同时虚构函数也不需要对一个空类实例进行销毁,因为里面只包含一个字节的数据。
本文探讨了C++中空类的行为特点,包括默认构造函数、拷贝构造函数的生成机制,以及赋值操作符和析构函数为何无需编译器额外处理的原因。
2979

被折叠的 条评论
为什么被折叠?



