Programar em C++/Herança: diferenças entre revisões

Saltar para a navegação Saltar para a pesquisa
[edição não verificada][edição não verificada]
(Síntese...)
 
A resposta está em uma das características que será muito útil quando quisermos usar de polimorfismo, que iremos abordar em capítulo específico mais adiante: a ocultação e superposição de funções da classe base a partir de uma classe derivada (conhecida como "overriding" em manuais de compiladores). Com este recurso podemos declarar em uma classe derivada uma função com nome e parâmetros idênticos a uma existente em uma classe base, porém com conteúdo diferente.
 
Vejamos o exemplo de código e teremos uma noção mais concreta do que foi explanado:
 
<source lang="cpp">
#include <iostream>
 
using namespace std;
 
class animal
{
public:
void comer();
void mover();
void dormir() { cout << "Dormindo..." << endl; }
};
...
...
class ave : public animal
{
public:
void comer(){ cout << "Bicando..." << endl; }
void mover(){ cout << "Voando..." << endl; }
};
...
...
class peixe : public animal
{
public:
void comer(){ cout << "Mordendo..." << endl; }
void mover(){ cout << "Nadando..." << endl; }
};
 
int main()
{
ave passarinho;
peixe sardinha;
 
passarinho.mover();
sardinha.mover();
 
#ifdef WIN32
system("pause");
#endif
return 0;
}
</source>
 
== Acessando funções superpostas da classe base ==

Menu de navegação