首页 > 试题广场 >

下面代码打印结果为()class Base {&nbs...

[单选题]
下面代码打印结果为()
class Base {
char data[3];
public:
virtual void f() { cout << "Base::f" << endl; }
virtual void g() { cout << "Base::g" << endl; }
virtual void h() { cout << "Base::h" << endl; }

};
int main()
{
cout << sizeof(Base)<< endl;
return 0; 
}


  • 6
  • 7
  • 8
  • 9
若类中包含虚函数,则无论有几个虚函数,sizeof类都等于sizeof(数据成员)的和+sizeof(虚函数指针,为4)。data[3]为长度为3的字符数组,对齐后为4;虚函数指针(无论几个),为4;sizeof(class)=4+4=8
编辑于 2019-01-23 09:01:35 回复(0)
64位系统跑出来的结果是16,类和结构中不同类型的成员计算sizeof时需要对其,char data[3]长度为3,虚函数指针(无论几个)是8(在我的电脑上),对其之后就是8+8=16.
发表于 2019-03-10 11:16:44 回复(0)

要考虑到类中的字节对其


发表于 2019-10-30 16:09:27 回复(0)