天天看點

c++中的多重繼承和虛函數

c++中的多重繼承和虛函數
           
不懂的地方如下:
           
#include <iostream>
using namespace std;

class base
{
public:
    virtual ~base() {};
    virtual void func() const
    {
        cout << "base output!" << endl;
    }
};

class derived1 :public base
{
public:
    void func() const
    {
        cout << "derived1 output!" << endl;
    }
};

class derived2 :public derived1
{
public: 
    void func() const
    {
        cout << "derived2 output!" << endl;
    }
};

void test(const base &rBase)    //傳遞的是該對象的位址?
{
    rBase.func();
}

void main()
{
    base bobj;
    derived1 d1obj;
    derived2 d2obj;
    test(bobj);
    test(d1obj);
    test(d2obj);
    system("pause");
}
           

結果如下:

c++中的多重繼承和虛函數

不懂的地方主要集中在:

void test(const base &rBase)    //傳遞的是該對象的位址?
{
    rBase.func();
}
           

這個函數。const base & rBase貌似是傳遞的是對象的位址,但不知為何?

繼續閱讀