网站首页 网站建设 IT知识 IT知识教程 C++空类详解

C++空类详解

2021-05-20 21:21:08

空类默认产生的成员:
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邮箱联系删除。

以上产品还未完全满足我的所有需求,在下方提交我的专属需求
我的专属需求:
*手机号:
*验证码:
img
咨询报价
现在咨询
img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP