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]
</source>
 
Repare que temos o operador "''':'''" ( dois pontos ) como elo de ligação entre as duas classes. Este operador promove o "parentesco" entre as duas classes quando é usado na declaração de uma classe derivada.
O termo [<acesso>] é opcional, mas se estiver presente deve ser public, private ou protected. Ele define o grau de visibilidade dos membros da classe base quando a classe derivada precisar acessá-los.
Exemplo de implementação:
<source lang="cpp">
// DemonstrateDemonstra inheritanceherança.
#include <iostream>
using namespace std;
class road_vehicleveiculo_rodoviario // Define auma classe base class for vehiclesveículos.
{
int wheelsrodas;
int passengerspassageiros;
public:
void set_wheelsset_rodas(int num) { wheelsrodas = num; }
int get_wheelsget_rodas() { return wheelsrodas; }
void set_pass(int num) { passengerspassageiros = num; }
int get_pass() { return passengerspassageiros; }
};
class truckcaminhao : public road_vehicleveiculo_rodoviario // Define aum truckcaminhao.
{
int cargocarga;
public:
void set_cargoset_carga(int size) { cargocarga = size; }
int get_cargoget_carga() { return cargocarga; }
void showmostrar();
};
enum typetipo {carcarro, van, wagonvagao};
class automobileautomoveis : public road_vehicleveiculo_rodoviario // Define an automoble.
{
enum typetipo car_typecar_tipo;
public:
void set_typeset_tipo(typetipo t) { car_typecar_tipo = t; }
enum typetipo get_typeget_tipo() { return car_typecar_tipo; }
void showmostrar();
};
void truckcaminhao::showmostrar()
{
cout << "wheelsrodas: " << get_wheelsget_rodas() << "\n";
cout << "passengerspassageiros: " << get_pass() << "\n";
cout << "cargocarga capacity(capacidade inem literslitros): " << cargocarga << "\n";
}
void automobileautomoveis::showmostrar()
{
cout << "wheelsrodas: " << get_wheelsget_rodas() << "\n";
cout << "passengerspassageiros: " << get_pass() << "\n";
cout << "typetipo: ";
switch(get_typeget_tipo())
{
case van: cout << "van\n";
break;
case car: cout << "carcarro\n";
break;
case wagonvagao: cout << "wagonvagao\n";
}
}
int main()
{
truckcaminhao t1, t2;
automobileautomoveis c;
t1.set_wheelsset_rodas(18);
t1.set_pass(2);
t1.set_cargoset_carga(3200);
t2.set_wheelsset_rodas(6);
t2.set_pass(3);
t2.set_cargoset_carga(1200);
t1.showmostrar();
cout << "\n";
t2.showmostrar();
cout << "\n";
c.set_wheelsset_rodas(4);
c.set_pass(6);
c.set_typeset_tipo(van);
c.showmostrar();
#ifdef WIN32
system ("pause");
#endif
return 0;
}

Menu de navegação