首页 > 编程 > C++ > 正文

详解C++空类

2020-02-24 14:28:29
字体:
来源:转载
供稿:网友

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++空类资料,相信大家都知道了吧!如果你已经学会这些方法了,那么赶快去操作一下吧!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表