// 菱形结构的多重继承 #include <iostream> using namespace std; class CHuman {public: CHuman() { cout << "CHuman()" << endl; } virtual void Speak() { cout << "CHuman::Speak()" << endl; } }; class CGrandpa : virtual public CHuman { public: CGrandpa() { cout << "CGrandpa()" << endl; } }; class CGrandma : virtual public CHuman { public: CGrandma() { cout << "CGrandma()" << endl; } }; class CFather : public CGrandpa, public CGrandma { public: CFather() { cout << "CFather()" << endl; } }; int main() { CHuman human; CGrandpa grandpa; CGrandma grandma; CFather father; father.Speak(); return 0; }