为了确保两个不同对象的地址不同,必须如此。也正因为如此,new返回的指针总是指向不同的单个对象。我们还是来看代码吧: 另外,C++中有一条有趣的规则——空基类并不需要另外一个字节来表示: 如果上述代码中p1和p2相等,那么说明编译器作了优化。这样的优化是安全的,而且非常有用。它允许程序员用空类来表示非常简单的概念,而不需为此付出额外的(空间)代价。一些现代编译器提供了这种“空基类优化”功能。 原文地址: http://www.research.att.com/~bs/bs_faq2.html#sizeof-empty