首页 > 试题广场 >

以下关于类占用内存空间的说法正确的是

[不定项选择题]
以下关于类占用内存空间的说法正确的是
  • 类所占内存的大小是由成员变量(静态变量除外)决定的
  • 空类的内存大小是1个字节
  • 类中无论有多少个虚函数,只会多占一个虚表指针空间
  • 子类的内存大小等于父类的内存大小加上子类独有成员变量的内存大小
A. 类所占大小由虚函数、所有非静态数据成员大小、对其所占字节数决定。 A错误
B. 空类大小为一个字节。B正确
C. 无论基类还是派生类都会共用一个虚函数表,只会占用一个虚表指针大小。C正确
D. 派生对象的大小才为基类存储空间+派生类特有的非static数据成员的空间,D选项共有几点错误:1.派生对象才为两个相加;2.派生类必须为非static数据。

发表于 2022-02-15 10:42:15 回复(3)
<p>A选项 虚函数的大小呢?</p><p>D选项 子类虚继承父类的时候呢?</p>
发表于 2020-10-03 16:20:38 回复(2)
我对D选项的疑惑
1.需要考虑对齐
2.父无虚,子有虚
都不是D这样简单相加的
求解惑
发表于 2021-01-14 15:34:31 回复(2)
题有误啊!多重继承时,子类就会有多个虚表啊!
编辑于 2024-02-28 22:39:19 回复(0)
D选项
还有一种情况也可以证明D是错的,如果父类是空类,子类的大小并不会加上空类所占的一个字节
发表于 2023-07-28 13:26:14 回复(0)
题出的很不严谨
发表于 2021-09-23 11:31:09 回复(0)
答案A和D都没有考虑   类中有虚函数(此时需要计算虚函数指针占据内存大小)情况和类之间有虚继承(此时需要计算虚基类指针占据内存大小)的情况。
发表于 2022-12-22 20:45:45 回复(0)
类所占大小由虚函数,所有非静态数据成员大小对其所占字节数决定。空类大小为一个字节
发表于 2022-02-19 10:30:15 回复(0)