Teniendo en cuenta este código:¿Cómo exponer la sobrecarga oculta de la clase base?
class base {
public:
string foo() const; // Want this to be visible in 'derived' class.
}
class derived : public base {
public:
virtual int foo(int) const; // Causes base class foo() to be hidden.
}
¿Cómo puedo hacer la base :: foo() visible para derivados sin replicar con una sobrecarga de métodos ficticia que llama a la clase base? ¿Funciona el using
? Si es así, ¿a dónde va, es así?
class derived : public base {
public:
virtual int foo(int) const;
using base::foo;
}
Supongo que esto también funciona para los punteros: x_ptr-> base :: foo(), ¿verdad? – WilliamKF
@William: sip. La diferencia entre los dos es que 'using' extrae todos los miembros de ese nombre a un único alcance, por lo que todos participan en la resolución de sobrecarga. – ybungalobill