我的小程序中有以下代码
class myc {
int dummy;
public:
virtual int si(){return sizeof(*this);}
};
int main() {
myc a;
cout<<a.si()<<endl;
cin.get();
return 0;
}
输出是 8 ,但正如我预期的那样,它应该是 4 有人能告诉我为什么当我将 si() 方法更改
virtual int si(){return sizeof(*this);}
为
int si(){return sizeof(*this);}
我得到正确的输出,即 4