我々は持っています:
class A {
public:
int f();
int f(int);
//...
};
class B {
public:
int f();
int f(int);
//...
};
class AB : public A, public B {
public:
long f(double, double);
//...
};
A::f()、A::f(int)、B::f()は にB::f(int)隠されています。隠されていなかったかのようにandclass ABのみを使用したい:A::f()B::f(int)
AB ab;
ab.f(); // ab.A::f()
ab.f(1); // ab.B::f(1)
次のコードを書くよりも簡単にこれを達成する方法はありますか?
class AB : public A, public B {
public:
//...
int f() {return A::f();}
int f(int x) {return B::f(x);}
};
キーワードを考えusingましたが、同じ名前で異なる署名を持つメソッドを区別しません。