前因:

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;
}
View Code

相关文章:

  • 2021-07-26
  • 2022-12-23
  • 2021-08-09
  • 2022-02-09
  • 2022-12-23
  • 2021-09-27
  • 2021-09-04
猜你喜欢
  • 2021-06-14
  • 2021-09-02
  • 2022-12-23
  • 2021-06-14
  • 2021-07-02
相关资源
相似解决方案