首页 > 编程 > C语言 > 正文

详解C++空类

时间:2019年08月14日
C++空类意味着该类不携带任何数据,也就是说,在类中没有非静态数据成员变量,没有虚拟函数,也没有虚拟基类,本文是爱站技术频道小编为大家详解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++空类资料,相信大家都知道了吧!如果你已经学会这些方法了,那么赶快去操作一下吧!

上一篇:总结operator new在C++中的各种写法

下一篇:详细解析C++嵌套类与局部类的说明

相关阅读

爱站科技 ©2017版权所有 免责声明 粤ICP备13073302号-3 粤公网安备 44030302000085号 热门关键词