-2

当我们对该类的没有任何数据成员的对象使用 sizeof 运算符时。那么输出会是什么呢?为什么这总是输出1?

class Abhi
{
public :
int sum (int, int);
int avg (int);
};
int Abhi:: sum(int a, int b)
{
float c;
c=a+b;
return 0;
}

int main()
{
Abhi abh;
int c;
c= sizeof(abh);
cout<<c;
}
4

1 回答 1

4

根据标准,一个类的每个实例都必须有一个唯一的地址。这通常是通过给“空”类(无数据成员)一个最小大小来实现的,就好像里面有一个虚拟字符一样。这就是 sizeof 给出 1 而不是 0 的原因。

于 2013-08-08T17:18:05.647 回答