19 189
edições
[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 ==
|