一:问题描述:
在C++中,编译器会为空类提供哪些默认成员函数?分别有什么样的功能呢?
二:详解
1:空类在声明的时候,编译器并不会为其生成任何成员函数,只会生成1个字节的占位符。
2:有时可能会以为编译器会为空类生成默认构造函数等,事实上是不会的,编译器只会在需要的时候生成6个成员函数:一个缺省的构造函数、一个拷贝构造函数、一个析构函数、一个赋值运算符、一对取址运算符和一个this指针。
代码:
#include <iostream>
using namespace std;
class Empty_one //声明一个空类
{
};
class Empty_two
{};
class Empty_three
{
virtual void fun() = 0;
};
class Empty_four : public Empty_two, public Empty_three
{
};
int main()
{
cout<<"sizeof(Empty_one):&