多态易错题5

    xiaoxiao2022-06-22  20

    看代码,输出结果

    #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;

    转载请注明原文地址: https://ju.6miu.com/read-1122893.html

    最新回复(0)