我的小程序中有以下代码
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