我試圖使用多繼承。 人是我的基礎班。 學生和Angestellter繼承受保護的屬性。 WissenschaftlicheHilfskraft也應該繼承這些屬性(來自Person,Student,Angestellter),但我無法在最後一個派生類中調用方法get_name()。爲什麼?在C++中使用3個派生類的多繼承
#include <iostream>
using namespace std;
class Person {
protected:
string name;
public: //.......
string get_name() { name = "bob"; return name; }
};
class Student: public Person {
private: //......
public: //......
};
class Angestellte: public Person {
private: //......
public: //......
};
class WissenschaftlicheHilfskraft : public Student, public Angestellte
{
private: //......
public: //......
};
int main()
{
Person p;
cout << p.get_name() << endl; //WORKS
Student s;
cout << s.get_name() << endl; //WORKS
Angestellte a;
cout << a.get_name() << endl; //WORKS
WissenschaftlicheHilfskraft wh;
cout << wh.get_name() << endl; //DOESN'T WORK
return 0;
}
你可以在這裏熟悉:https://isocpp.org/wiki/faq/multiple-inheritance – Sambuca