详解C++空类
C++空类意味着该类不携带任何数据,也就是说,在类中没有非静态数据成员变量,没有虚拟函数,也没有虚拟基类,本文是爱站技术频道小编为大家详解C++空类,一起来看看吧!
空类默认产生的成员:
class Empty {};
Empty(); // 默认构造函数
Empty( const Empty& ); // 默认拷贝构造函数
~Empty(); // 默认析构函数
Empty& operator=( const Empty& ); // 默认赋值运算符
Empty* operator&(); // 取址运算符
const Empty* operator&() const; // 取址运算符 const
给出一个例子:
#include<iostream>
using namespace std;
class Empty
{
public:
Empty *operator&()
{
cout<<"AAAA"<<endl;
return this;
}
const Empty* operator&() const
{
cout<<"BBBB"<<endl;
return this;
}
};
int main(void)
{
Empty e;
Empty *p=&e;
const Empty e2;
const Empty *p2=&e2;
cout<<sizeof(Empty)<<endl;
}
运行结果:
可见:
Empty *p=&e调用了Empty* operator&()运算符函数
const Empty *p2=&e2调用了const Empty* operator&() const运算符函数。
空类的大小为1字节。
看完上面由爱站技术频道小编带来的详解C++空类资料,相信大家都知道了吧!如果你已经学会这些方法了,那么赶快去操作一下吧!