百合文库
首页 > 网文

C 类的实例化对象的大小之SIZEOF()(4)

2023-10-25 来源:百合文库
~G()
{
}
private:
int c;
};
G g;
cout << sizeof(g) << endl;
执行结果:40
解释:假设是虚继承的话,类对象的存储空间大小 = 基类的存储空间  派生类特有的非static数据成员的存储空间  每个类的虚函数存储空间(这选函数的存储只算一次的)
实例九:
class H: public virtual E
{
public:
H()
{
}
~H()
{
}
virtual void GetValue()
{
}
private:
int c;
};
H h;
cout << sizeof(h) << endl;
执行结果:40

C  类的实例化对象的大小之SIZEOF()


解释:对照实例八,依照上面的解释:类对象的存储空间大小 = 基类的存储空间  派生类特有的非static数据成员的存储空间  每个类的虚函数存储空间(sizeof(h) = 12(E基类的存储空间) 4(G特有的非static数据成员的存储空间) 4(E类的虚函数的存储空间,假设E类中有多个虚函数,仅仅算一次) 4(H类的虚函数的存储空间,假设H类中有多个虚函数。仅仅算一次))。
如上,就是我对于这样的类型的总结,这样的问题仅仅能出现一次!
本文使用 文章同步助手 同步


猜你喜欢