c++ 虚基类大小

#include <iostream>
using namespace std;
class A {

public:
    A() :ia_(10) {
    }
    virtual void f() {std::cout << "A::f()" << endl;}

private:
    int ia_;
};
class B :virtual public A {
public:
    B() :ib_(20) {}
    void fb() {std::cout << "B::f()" << endl;}
    virtual void f() {std::cout << "B::f()" << endl;}
    virtual void f2() {std::cout << "B::f2()" << endl;}
private:
    int ib_;
};

int main() {
    B b;
    std::cout << "sizeof(b): " << sizeof(b) << endl;
    system("pause");
    return 0;
}

int ia_ + virtual f() + class B:virtual public A+ int ib_ + virtual f() + virtual f2()=
4 + 8+8+4+8+8+8=40

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容