Advertisement
Caio_25

herança, polimorfismo e template

May 10th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using namespace std;
  5.  
  6. namespace Universidade{
  7.    
  8.     //Polimorfismo paramétrico
  9.      template <class t> class Aluno{
  10.        
  11.         private:
  12.             //polimorfismo paramétrico
  13.        
  14.             int codigo;
  15.             string nome;
  16.    
  17.        
  18.         protected:
  19.             float valorMensalidade;
  20.        
  21.         public:
  22.         //Polimorfismo por sobrecarga
  23.             Aluno(int codigo, string nome)
  24.             {
  25.                 this->codigo = codigo;
  26.                 this->nome = nome;
  27.             }
  28.            
  29.             Aluno()
  30.             {
  31.            
  32.             }
  33.            
  34.            
  35.             void setValorMensalidade(float valorMensalidade)
  36.             {
  37.                 this->valorMensalidade = valorMensalidade;
  38.             }
  39.            
  40.             //
  41.             float calcValorMensalidade()
  42.             {
  43.                 return(valorMensalidade);
  44.             }
  45.            
  46.     };
  47.    
  48.     template <class t> class AlunoPesquisador : public Aluno<t>{
  49.        
  50.     public:
  51.         AlunoPesquisador(int codigo, string nome) : Aluno<t>(codigo, nome)
  52.         {
  53.         }
  54.    
  55.        
  56.         float calcValorMensalidade()
  57.         {
  58.             return(Aluno<t>::valorMensalidade * 0.5);
  59.         }
  60.     };
  61.  
  62. }
  63.  
  64. int main()
  65. {
  66.     Universidade::Aluno<int> a(893, "caio");
  67.     a.setValorMensalidade(921.45);
  68.  
  69.     cout << a.calcValorMensalidade() << endl;  
  70.  
  71.     Universidade::AlunoPesquisador<string> b(289, "mario");
  72.     b.setValorMensalidade(921.45);
  73.    
  74.     cout << b.calcValorMensalidade() << endl;
  75.    
  76.    
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement