多态易错题5

来源:互联网 发布:阿里云研究生学生认证 编辑:程序博客网 时间:2024/06/05 07:06

看代码,输出结果

#include<iostream>using namespace std;class base{private :public :    void fu(){}};class der:public base{private:public :    void fun(){}};int main(){    der s1;    cout<<sizeof(s1)<<endl;    return 0;}

结果:1

#include<iostream>using namespace std;class base{private :public :    void fu(){}};class der:virtual public base{private:public :    void fun(){}};int main(){    der s1;    cout<<sizeof(s1)<<endl;    return 0;}

结果: 4
对象内存多了一个vbptr

#include<iostream>using namespace std;class base{private :public :    void fu(){}};class der:virtual public base{private:public :    virtual void fun(){}};int main(){    der s1;    cout<<sizeof(s1)<<endl;    return 0;}

结果:8
对象内存多了一个vfptr;

0 0
原创粉丝点击