C++ 对象 布局

一个基类中定义了一个虚函数,那么派生类在继承这个基类后,派生类中私有的成员变量是在上面那个虚函数指针前面还是后面呢?我们可以通过一个小代码测试一下:

class A{
public:
    int b;
    string name;
    A(){}
    virtual ~A(){}
};

class B : public A{
public:
    int c;
};
int main(int argc , char *argv[])
{
     B b;
     cout<< &(((B*)0)->c)<<endl;//12前面有十二个字节 
    system("pause");
    return EXIT_SUCCESS;
}

main中输出的结果是12,说明B.c前面有十二个字节,而b占四个字节,name占四个字节,这才八个字节,再加上虚函数表指针总共12字节就对了!!!

posted @ 2013-04-02 09:54  和道一文字  阅读(124)  评论(0)    收藏  举报