『腾讯面试题』类成员存储问题。


    class A{
        virtual void funA();
        int mA;
    };

sizeof(A)是多少?
    class A{
        virtual void funA();
        virtual void funB();
        int mA;
    };

sizeof(A)又是多少?
虚函数表存放在哪里?
已邀请:

类中有虚函数,会生成虚函数表,并在该类的实例中添加一个指向虚函数表的指针。在32位机器上,一个指针占4字节的空间,64位机器上占8字节空间,int的大小由编译器决定,通常占4个字节,所以在32位机器上第一个sizeof(A)为8,由于类中无论有多少虚函数,指向虚函数的指针是唯一的,只有一个,所以第二个sizeof(A)也为8。
欢迎指正!

要回复问题请先登录注册

返回顶部