美文网首页
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