多继承中基类有同名属性和成员函数时怎么使用using澄清二义性
代码如下
#include <iostream>
using namespace std;
class Base1{
public:
int var;
void fun(){cout<<"Base1"<<endl;}
};
class Base2{
public:
int var;
void fun(){cout<<"Base2"<<endl;}
};
class Derived:public Base1,public Base2{
public:
using Base1::var;//加using澄清二义性
using Base1::fun;//加using澄清二义性
};
class Derived2:public Base1,public Base2{
public:
using Base1::fun;//加using澄清二义性 报错不能调整访问权限到此类中
void fun(int i){cout<<"Dervied2"<<endl;}
};
int main(){
Derived d;
Derived *p=&d;
d.var=1;//报错请求不明确
d.fun();//报错请求不明确
d.Base1::var=2;
d.Base1::fun();
p->Base2::var=2;
p->Base2::fun();
return 1;
}
报错截图
using为什么没有作用