示例代码:
#include <iostream>
using namespace std;
class Base1 {
public:
int var;
void fun() { cout << "member in Base1" << endl; }
};
class Base2 {
public:
int var;
void fun() { cout << "member in Base2" << endl; }
};
class Derived : public Base1, public Base2 {
public:
int var;
void fun() { cout << "member in Derived" << endl; }
};
int main() {
Derived d;
Derived *p = &d;
//调用Derived成员
d.var = 1;
d.fun();
//调用Base1成员
d.Base1::var = 2;
d.Base1::fun();
//调用Base2成员
p->Base2::var = 3;
p->Base2::fun();
return 0;
}
运行结果:
当派生类和基类中有同名成员时,默认访问的是派生类中的成员;若要访问基类中的同名成员,则需加上类名和作用域限定符。