C++空类详解

时间:2021-05-20

空类默认产生的成员:
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字节。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章