In C++11 it is possible to make a public member of a private base class accessible to the outside (public) with a using declaration. For example
class A {
private:
int i = 2;
public:
void f() { i = 3; }
friend bool operator==(const A& l, const A& r) { return l.i == r.i; }
};
class B : private A {
public:
using A::f;
};
int main() {
B b, b2;
b.f();
}
b.f() is possible because of the using A::f in the definition of B.
Is it possible write a similar declaration which would make the up-cast from B& to A& possible for the friend function operator==(A&, A&), so that b == b2 can be called in main()?
Aucun commentaire:
Enregistrer un commentaire