C++ 多继承

黎 浩然/ 8 5 月, 2022/ C/C++, 计算机/COMPUTER/ 0 comments

/**
 * @file virnhe.cpp * @brief 多继承
 * @author Ernest
 * @version v1
 * @date 2019-07-21 
 */
#include<iostream>
using namespace std;

class A {
    virtual void fun() {}
};

class B {
    virtual void fun2() {}
};

class C : public  A, public B {
public:
    virtual void fun3() {}
};

int main() {
    class A *a = new A();
    class B *b = new B();
    class C *c = new C();
    /*
     * @brief 8 8 16 派生类虚继承多个虚函数,会继承所有虚函数的vptr 
     */
    cout<<sizeof(*a)<<" "<<sizeof(*b)<<" "<<sizeof(*c);
    return 0;
}
//8 8 16

有两个虚函数表指针,第一个表

可见第一个表是继承A的,但是也有C自己的虚函数;第二个表

是继承B的

Share this Post

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

*
*