首页 相关文章 Bjarne:为什么一个空类的大小不为0?

Bjarne:为什么一个空类的大小不为0?

要清楚,两个不同的对象的地址也是不同的。基于同样的理由,new总是返回指向不同对象的指针。

  看看:

class Empty { };

void f()
{
 Empty a, b;
 if (&a == &b) cout "impossible: report error to compiler supplier";

 Empty* p1 = new Empty;
 Empty* p2 = new Empty;
 if (p1 == p2) cout "impossible: report error to compiler supplier";

}
  有一条有趣的规则:一个空的基类并不一定有分隔字节。

strUCt X : Empty {
 int a;
 // ...
};



void f(X* p)
{
 void* p1 = p;
 void* p2 = &p-a;
 if (p1 == p2) cout "nice...[ 查看全文 ]

2016-02-19 标签:

Bjarne:为什么一个空类的大小不为0?的相关文章

手机页面
收藏网站 回到头部