前因:
1.C++中多重继承,即一个派生类可以有多个基类。如果多个基类有同名成员或同名函数,派生类对象对其访问时会产生二义性。
举例:
#include <iostream> using namespace std; class Base1 { public: Base1(int var){cout << "Base1" << endl; }; int var; void fun() { cout << "Base1::fun()" << endl; } }; class Base2 { public: Base2(int var){cout << "Base2" << endl;}; int var; void fun() { cout << "Base2::fun()" << endl; } }; class Derived : public Base1, public Base2 { public: Derived(int var) : Base1(var), Base2(var){cout << "Derived" << endl; }; //int var; //void fun() { cout << "Derived::fun()" << endl; } }; int main() { Derived d(1); d.var = 2; d.fun(); //cout<<"d.var = " <<d.var<<endl; return 0; }