Para poder llamar a la clase padre, antes tienes que hacer que una clase herede de la otra.
Algo así:
Código C++:
Ver originalclass A
{
int ejemplo() { return 1;}
}
class B : public A
{
int ejemplo(){return 2;}
}
En este caso, para llamar a la clase padre se debe escribir el siguiente código:
Código C++:
Ver originalclass A
{
int ejemplo() { return 1;}
}
class B : public A
{
int ejemplo(){return 2 + A::ejemplo();}
}
Este planteamiento también es válido para operadores:
Código C++:
Ver originalclass A
{
A operator=(const A& original) { ... }
}
class B : public A
{
B operator=( const B& original )
{
...
A::operator=(original);
return *this;
}
}
Como inciso, comentar que si la función sobreescrita no se declara como "virtual" en la clase padre se pueden producir resultados extraños al tirar de polimorfismo:
Código C++:
Ver originalclass A
{
public:
int ejemplo() { return 1;}
}
class B : public A
{
public:
int ejemplo(){return 2;}
}
int main( )
{
A* a1 = new A( );
B* b = new B( );
A* a2 = b;
std::cout << a1->ejemplo( ) << b->ejemplo( ) << a2->ejemplo( ) << std::endl;
}
resultado:
Sin embargo, como comentaba, si aplicas el modificador "virtual" la cosa cambia:
Código C++:
Ver originalclass A
{
public:
virtual int ejemplo() { return 1;}
}
class B : public A
{
public:
int ejemplo(){return 2;}
}
int main( )
{
A* a1 = new A( );
B* b = new B( );
A* a2 = b;
std::cout << a1->ejemplo( ) << b->ejemplo( ) << a2->ejemplo( ) << std::endl;
}
Resultado:
Espero que con esto te haya resuelto la duda :)
Un saludo.