首先,我们来预测以下程序的输出?
#include<iostream>
using namespace std;
class Empty {};
int main()
{
cout << sizeof(Empty);
return 0;
}
输出:1
空类的大小不为零。通常是1个字节。确保两个不同的对象具有不同的地址是非零的。请参见以下示例。
#include<iostream>
using namespace std;
class Empty { };
int main()
{
Empty a, b;
if (&a == &b)
cout << "impossible " << endl;
else
cout << "Fine " << endl;
return 0;
}
输出:Fine
由于相同的原因(不同的对象应该具有不同的地址),“ new”总是返回指向不同对象的指针。请参见以下示例。
#include<iostream>
using namespace std;
class Empty { };
int main()
{
Empty* p1 = new Empty;
Empty* p2 = new Empty;
if (p1 == p2)
cout << "impossible " << endl;
else
cout <<