#include <iostream>
class B
{
public:
virtual void f() {std::cout<<"HI";}
int x;
};
class A
{
public:
void f() {std::cout<<"HI";}
int x;
};
int main () {
A a;
B b;
std::cout<<sizeof(a)<<" "<<sizeof(b);
return 0;
}
输出是
4 16
我希望它长 8 个字节 - vptr 指针。但是剩下的 4 个字节是用来做什么的呢?我发现了很多论坛帖子(都是几年前的),人们在其中讨论了 vprt 类中的对象长 4 或 8 个字节。我还检查了在线 C++ shell - 输出是一样的。