详解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;
}


运行结果:

 

 

 


详解C++空类-第1张图片

可见:
Empty *p=&e调用了Empty* operator&()运算符函数
const Empty *p2=&e2调用了const Empty* operator&() const运算符函数。
空类的大小为1字节。

看完上面由风之恋奇迹技术频道小编带来的详解C++空类资料,相信大家都知道了吧!如果你已经学会这些方法了,那么赶快去操作一下吧!

提供最全面的奇迹sf开服版本和最新的奇迹私服开服技术信息,奇迹私服文库让每一位奇迹私服玩家找到自己需要的版本技术文章

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。