我々は持っています:
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
ましたが、同じ名前で異なる署名を持つメソッドを区別しません。