Código da Classe Veículos e sub-classes: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud (Criou página com ' #include <iostream> #include <stdlib.h> using namespace std; class veiculo_rodoviario{ //SUPER CLASSE private: int nrodas; int npassageiros; public: void...') |
imported>Fargoud Sem resumo de edição |
||
| Linha 78: | Linha 78: | ||
system("pause"); | system("pause"); | ||
return 0; | return 0; | ||
} | |||
ADICIONANDO CONSTRUTORES ÀS CLASSES FILHAS: | |||
#include <iostream> | |||
#include <stdlib.h> | |||
using namespace std; | |||
class veiculo_rodoviario{ /***** SUPER CLASSE *****/ | |||
private: | |||
int nrodas; | |||
int npassageiros; | |||
public: | |||
void setanrodas(int n) | |||
{nrodas = n;} | |||
int pegarodas() | |||
{return nrodas;} | |||
void setanpassageiros(int m){npassageiros = m;} | |||
int pegapassageiros(){return npassageiros;} | |||
}; | |||
/***** CLASSE DERIVADA CAMINHAO *****/ | |||
class caminhao: public veiculo_rodoviario{ | |||
int carga; | |||
void setacarga(int c) | |||
{carga = c;} | |||
int pegacarga() | |||
{return carga;} | |||
public: | |||
caminhao(); | |||
void Mostra(); | |||
}; | |||
caminhao::caminhao() | |||
{ int x; | |||
cout<< "\n\n*** REGISTRO DE CAMINHAO ***\n"<< endl; | |||
cout<<"\nEntre com o numero de rodas do veiculo: "<<endl; | |||
cin>> x; | |||
setanrodas(x); | |||
cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl; | |||
cin>> x; | |||
setanpassageiros(x); | |||
cout<<"\nEntre com a carga maxima, em toneladas, que o veiculo suporta "<<endl; | |||
cin>> x; | |||
setacarga(x); | |||
} | |||
void caminhao::Mostra() | |||
{ | |||
cout<< "\nNumero de rodas: "<< pegarodas() << endl; | |||
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl; | |||
cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl; | |||
cout << "\n\n"; | |||
} | |||
/***** CLASSE DERIVADA AUTOMOVEL *****/ | |||
enum tipocarro {carro, van, SUV}; | |||
class automovel: public veiculo_rodoviario{ | |||
enum tipocarro tipo; | |||
void setatipo(tipocarro t){tipo = t;} | |||
enum tipocarro pegatipo(){return tipo;} | |||
public: | |||
automovel(); | |||
void Mostra(); | |||
}; | |||
automovel::automovel() | |||
{ int x; | |||
tipocarro t; | |||
cout<< "\n\n*** REGISTRO DE AUTOMOVEL ***\n"<< endl; | |||
cout<<"\nEntre com o numero de rodas do veiculo: "<<endl; | |||
cin>> x; | |||
setanrodas(x); | |||
cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl; | |||
cin>> x; | |||
setanpassageiros(x); | |||
cout<<"\nEntre com o tipo de automovel: "<<endl; | |||
cout<<"\t\t(1) CARRO \n"<< endl; | |||
cout << "\t\t(2) VAN ou MINI-VAN \n"<< endl; | |||
cout << "\t\t(3) SUV ou utilitario \n"<< endl; | |||
cin>> x; | |||
switch(x) | |||
{ | |||
case 1: | |||
case 'c': | |||
case 'C': t = carro; break; | |||
case 2: | |||
case 'v': | |||
case 'V': t = van; break; | |||
case 3: | |||
case 's': | |||
case 'S': t = SUV; break; | |||
default: t =carro; | |||
} | |||
setatipo(t); | |||
} | |||
void automovel::Mostra() | |||
{ | |||
cout<< "\nNumero de rodas: "<< pegarodas() << endl; | |||
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl; | |||
cout<< "\ntipo de automóvel: "; | |||
switch(pegatipo()) | |||
{ | |||
case carro: cout << " CARRO \n"<< endl; break; | |||
case van: cout << " VAN ou MINI-VAN \n"<< endl; break; | |||
case SUV: cout << " SUV ou utilitario \n"<< endl; break; | |||
} | |||
cout << "\n\n"; | |||
} | |||
int main() | |||
{ caminhao c1, c2; | |||
automovel a1; | |||
veiculo_rodoviario v; | |||
c1.Mostra(); | |||
c2.Mostra(); | |||
a1.Mostra(); //POLIMORFISMO | |||
system("pause"); | |||
return 0; | |||
} | } | ||
Edição das 09h11min de 29 de novembro de 2019
#include <iostream>
#include <stdlib.h>
using namespace std;
class veiculo_rodoviario{ //SUPER CLASSE
private:
int nrodas;
int npassageiros;
public:
void setanrodas(int n){nrodas = n;}
int pegarodas(){return nrodas;}
void setanpassageiros(int m){npassageiros = m;}
int pegapassageiros(){return npassageiros;}
};
class caminhao: public veiculo_rodoviario{
int carga;
public:
void setacarga(int c){carga = c;}
int pegacarga(){return carga;}
void Mostra();
};
enum tipocarro {carro, van, SUV};
class automovel: public veiculo_rodoviario{
enum tipocarro tipo;
public:
void setatipo(tipocarro t){tipo = t;}
enum tipocarro pegatipo(){return tipo;}
void Mostra();
};
void caminhao::Mostra()
{
cout<< "\nNumero de rodas: "<< pegarodas() << endl;
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl;
cout << "\n\n";
}
void automovel::Mostra()
{
cout<< "\nNumero de rodas: "<< pegarodas() << endl;
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
cout<< "\ntipo de automóvel: ";
switch(pegatipo())
{
case carro: cout << " CARRO \n"<< endl; break;
case van: cout << " VAN ou MINI-VAN \n"<< endl; break;
case SUV: cout << " SUV ou utilitario \n"<< endl; break;
}
cout << "\n\n";
}
int main()
{ caminhao c1, c2;
automovel a1;
veiculo_rodoviario v;
c1.setanrodas(6); //metodos da super classe
c2.setanrodas(10); //metodos da super classe
c1.setanpassageiros(4); //metodos da super classe
c2.setanpassageiros(6); //metodos da super classe
c1.setacarga(2);
c2.setacarga(5);
c1.Mostra();
c2.Mostra();
a1.setanrodas(4);
a1.setanpassageiros(5);
a1.setatipo(van);
a1.Mostra(); //POLIMORFISMO
system("pause");
return 0;
}
ADICIONANDO CONSTRUTORES ÀS CLASSES FILHAS:
#include <iostream>
#include <stdlib.h>
using namespace std;
class veiculo_rodoviario{ /***** SUPER CLASSE *****/
private:
int nrodas;
int npassageiros;
public:
void setanrodas(int n)
{nrodas = n;}
int pegarodas()
{return nrodas;}
void setanpassageiros(int m){npassageiros = m;}
int pegapassageiros(){return npassageiros;}
};
/***** CLASSE DERIVADA CAMINHAO *****/
class caminhao: public veiculo_rodoviario{
int carga;
void setacarga(int c)
{carga = c;}
int pegacarga()
{return carga;}
public:
caminhao();
void Mostra();
};
caminhao::caminhao()
{ int x;
cout<< "\n\n*** REGISTRO DE CAMINHAO ***\n"<< endl;
cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
cin>> x;
setanrodas(x);
cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
cin>> x;
setanpassageiros(x);
cout<<"\nEntre com a carga maxima, em toneladas, que o veiculo suporta "<<endl;
cin>> x;
setacarga(x);
}
void caminhao::Mostra()
{
cout<< "\nNumero de rodas: "<< pegarodas() << endl;
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
cout<< "\nCarga suportada [ton]: "<< pegacarga() << endl;
cout << "\n\n";
}
/***** CLASSE DERIVADA AUTOMOVEL *****/
enum tipocarro {carro, van, SUV};
class automovel: public veiculo_rodoviario{
enum tipocarro tipo;
void setatipo(tipocarro t){tipo = t;}
enum tipocarro pegatipo(){return tipo;}
public:
automovel();
void Mostra();
};
automovel::automovel()
{ int x;
tipocarro t;
cout<< "\n\n*** REGISTRO DE AUTOMOVEL ***\n"<< endl;
cout<<"\nEntre com o numero de rodas do veiculo: "<<endl;
cin>> x;
setanrodas(x);
cout<<"\nEntre com o numero de passageiros que o veiculo pode transportar: "<<endl;
cin>> x;
setanpassageiros(x);
cout<<"\nEntre com o tipo de automovel: "<<endl;
cout<<"\t\t(1) CARRO \n"<< endl;
cout << "\t\t(2) VAN ou MINI-VAN \n"<< endl;
cout << "\t\t(3) SUV ou utilitario \n"<< endl;
cin>> x;
switch(x)
{
case 1:
case 'c':
case 'C': t = carro; break;
case 2:
case 'v':
case 'V': t = van; break;
case 3:
case 's':
case 'S': t = SUV; break;
default: t =carro;
}
setatipo(t);
}
void automovel::Mostra()
{
cout<< "\nNumero de rodas: "<< pegarodas() << endl;
cout<< "\nNumero de passageiros: "<< pegapassageiros() << endl;
cout<< "\ntipo de automóvel: ";
switch(pegatipo())
{
case carro: cout << " CARRO \n"<< endl; break;
case van: cout << " VAN ou MINI-VAN \n"<< endl; break;
case SUV: cout << " SUV ou utilitario \n"<< endl; break;
}
cout << "\n\n";
}
int main()
{ caminhao c1, c2;
automovel a1;
veiculo_rodoviario v;
c1.Mostra();
c2.Mostra();
a1.Mostra(); //POLIMORFISMO
system("pause");
return 0;
}