这是我昨天发布的一个后续问题:
sizeof(myobject) not what I have calculated
我使用sizeof(myclass)
创建一个类并计算其大小。大小为12个字节。然后我添加虚拟成员,大小最多为24个字节。它似乎又是数据打包问题(因为vtable指针的大小只有8个字节)。
所以,我的问题是:是否有可能告诉编译器将vtable指针放在其他数据成员之前,以便我可以保留额外4个字节的未使用空间?我知道我可以订购数据成员,但我可以订购" vtable指针?
约翰
答案 0 :(得分:0)
订购可能不是问题,即使你有一个数组,你的vtable指针可能必须是8字节对齐。如果大小为20,则数组中的每个第二个元素都有一个vtable指针,该指针未对齐4个字节。
(请注意,这不是vtable指针的内容,它会被错位。在数组中,所有vtable指针都相等)