美文网首页
c++ 虚函数表空间大小

c++ 虚函数表空间大小

作者: HenryTien | 来源:发表于2017-03-10 22:02 被阅读84次
#include <iostream>
using namespace std;
class A
{
    int i;
    void f() {}
    virtual void run() {}
    virtual void run1() {}
    virtual void run2() {}
};

class B :virtual public A
{
public:
    virtual void run() {}
    virtual void run1() {}
};
int main() {

    cout << sizeof(A) << endl;
    cout << sizeof(B) << endl;
    system("pause");
    return 0;
}

64位系统下输出: vs中
16-8
24-8
Press any key to continue . . .

A中int i 4个+虚函数表指针run 4 =8
B 中 继承A(int i 4个)+虚继承 占4个 run是virtual占8个,run1()也是,但是已经有了虚函数表指针

如果在B中增加一个virtual run3() 则增加8个字节 为 24

相关文章

网友评论

      本文标题:c++ 虚函数表空间大小

      本文链接:https://www.haomeiwen.com/subject/efbogttx.html