看代码,输出结果
#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;