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