/* Exemplo de heranca multipla de classes */
#include <iostream>
using namespace std;
/* Classe que represente esportistas genericamente */
class esportista
{
protected:
/* Dados genericos, que todo esportista deve ter */
string nome;
int idade;
float velocidade_maxima;
public:
/* Funcao para preencher os dados do esportista */
void define_esp();
/* Funcao para escrever os dados do esportista na tela */
void escreve_esp();
};
/* Funcao para preencher os dados do esportista.
Interacao com o usuario */
void esportista::define_esp()
{
cout << "Nome: ";
cin >> nome;
cout << "Idade: ";
cin >> idade;
cout << "Velocidade maxima: ";
cin >> velocidade_maxima;
}
/* Funcao para escrever os dados do esportista na tela */
void esportista::escreve_esp()
{
cout << "Nome: " << nome << endl;
cout << "Idade: " << idade << endl;
cout << "Velocidade maxima: " << velocidade_maxima << endl;
}
/* Classe que represente uma conta bancaria */
class conta
{
protected:
/* Dados genericos da conta */
float saldo;
string conta_corrente, agencia;
public:
/* Funcao para preencher os dados da conta */
void define_conta();
/* Funcao para escrever os dados da conta na tela */
void escreve_conta();
};
/* Funcao para preencher os dados da conta.
Interacao com o usuario */
void conta::define_conta()
{
cout << "Conta corrente: ";
cin >> conta_corrente;
cout << "Agencia: ";
cin >> agencia;
cout << "Saldo: ";
cin >> saldo;
}
/* Funcao para escrever os dados da conta na tela */
void conta::escreve_conta()
{
cout << "Conta corrente: " << conta_corrente << endl;
cout << "Agencia: " << agencia << endl;
cout << "Saldo: " << saldo << endl;
}
/* Classe que representa nadadores, herdando as
classes de esportistas e de contas bancarias
(HERANCA MULTIPLA) */
class nadador: public esportista, public conta
{
private:
/* Dados que so o nadador deve ter */
float folego;
public:
/* Funcao para definir os dados do nadador */
void define_nad();
/* Funcao para escrever os dados do nadador na tela */
void escreve_nad();
};
/* Funcao para definir os dados do nadador.
Interacao com o usuario */
void nadador::define_nad()
{
/* Uso de funcao herdada da classe \'esportista\' */
define_esp();
/* Definicao de dados exclusivos ao nadador */
cout << "Folego: ";
cin >> folego;
/* Uso de funcao herdada da classe \'conta\' */
define_conta();
}
/* Funcao para escrever os dados do nadador na tela */
void nadador::escreve_nad()
{
/* Uso de funcao herdada da classe \'esportista\' */
escreve_esp();
/* Uso de dados exclusivos ao nadador */
cout << "Folego: " << folego << endl;
/* Uso de funcao herdada da classe \'conta\' */
escreve_conta();
}
int main(int argc, char *argv[])
{
nadador nad1;
cout << "----------------------------------------------------\\n";
/* Definicao dos dados do nadador */
nad1.define_nad();
cout << "----------------------------------------------------\\n";
/* Escrita dos dados do nadador na tela */
nad1.escreve_nad();
cout << "----------------------------------------------------\\n";
return EXIT_SUCCESS;
}