首页 > 试题广场 >

下面程序打印结果为()#includeus...

[单选题]
下面程序打印结果在32位系统上输出为()
#include<iostream>
using namespace std;

class A {
    char a[3];
public:
    virtual void fun1(){};
};

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

  • 4
  • 8
  • 12
  • 16
char[3] 占3个字节,虚函数表指针4字节,32位系统需地址对齐,故占8字节
发表于 2021-03-21 11:34:58 回复(0)
子类在内存中占用的字节数 = 父类占用字节数 + 自身成员所占的字节数,如果有虚函数,要算上虚函数表指针。
发表于 2020-03-16 21:34:54 回复(0)
我觉得可能牛客710053652号 说的有一点问题:不是类中的虚函数表指针4个字节,是类中的虚函数表4个字节,实例化后的对象中存在虚函数指针,指向类中的虚函数表
编辑于 2021-03-21 15:56:35 回复(0)
sizeof(char)  1;
sizeof(int)  4;
sizeof(double)  8;
sizeof(float)  4;
sizeof(string)  28;
sizeof(char/int/double/float/string*)  4;
发表于 2023-08-23 11:41:25 回复(0)
说到底struct和class的对齐方式类似
发表于 2022-04-11 19:49:48 回复(0)
char 为一个字节
发表于 2024-03-05 22:44:07 回复(0)
虚函数表是在类中存储的吗?
发表于 2023-04-30 12:03:31 回复(0)