在 C++ 中,问题很简单。
我有 2 个类,其中一个包含另一个作为其实现的一部分。
struct A
{
void do_something()
{
};
};
struct B
{
A obj_A;
void hello_world()
{
};
};
现在的问题是,当我执行 sizeof(B) 和 B 类型的对象时,如果 A 是 B 的一部分,则结构 B 大一个字节。A 100% 只包含非虚拟成员(不需要虚拟表)并且不需要 typeid 检查。有什么办法(比如编译器指令)从 B 中完全删除不需要的字节,但仍然通过 B 访问 A 的成员函数?
我只能假设额外的字节是编译器将 char* 添加到 A 的名称“A”,但任何其他想法都会有所帮助。