C++ private继承使用访问申明,函数重名调用问题
怎样使用Z的实例化对象调用Y的show()方法,Y的show2()方法没有重名可以直接使用
#include <iostream>
using namespace std;
class X {
public:
void show() {
cout<<"X"<<endl;
}
};
class Y {
public:
void show() {
cout<<"Y"<<endl;
}
void show2() {
cout<<"Y2"<<endl;
}
};
class Z: public X, private Y {
public:
void show() {
cout<<"Z"<<endl;
}
Y::show; // 访问申明
Y::show2; // 访问申明
};
int main() {
Z obj;
obj.show(); // 输出Z
obj.X::show(); // 输出X
// 希望通过obj调用Y::show(), 使用obj.Y::show()会报错
obj.show2(); // 输出Y2
return 0;
}