您的位置: 旅游网 > 明星 >> 周杰

为什么一个空类的大小不为物业

发布时间:2021-10-26 07:14:06

要清楚,两个不同的对象的地址也是不同的。基于同样的理由,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: good optimizer\";

}

这种优化是允许的,可以被广泛使用。它允许程序员使用空类以表现一些简单的概念。现在有些编译器提供这种“空基类优化”(empty base class optimization)。查看本文来源

合肥包皮包茎治疗费用多少钱
齐齐哈尔白癜风医院
南昌医院白癜风
猜你会喜欢的
猜你会喜欢的