Size of virtual pointer-C++

前端 未结 6 748
迷失自我
迷失自我 2020-12-19 12:51

What is the size of virtual pointer(VPTR) for a virtual table in C++? Also this is not a homework question...just a question that came to my mind while I was reading a C++ b

6条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-19 13:16

    That depends on your implementation, but it's easy to find out. For this program

    #include 
    
    struct virtual_base {
        int data;
        virtual_base() {}
        virtual ~virtual_base() {}
    };
    
    struct non_virtual_base {
        int data;
        non_virtual_base() {}
        ~non_virtual_base() {}
    };
    
    int main() {
        std::cout << sizeof( virtual_base ) - sizeof( non_virtual_base ) << '\n';
        return 0;
    }
    

    mine (VC 2008) will print 4, so the cost of polymorphism is, in this case, 4 byte.

提交回复
热议问题