document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.  
  2. /* Segundo exemplo de como utilizar construtores para classes */
  3.  
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. /* Classe que representa retangulos */
  8. class retangulo
  9. {
  10.         /* Variaveis privadas para representar largura,
  11.         comprimento, area e perimetro do retangulo */
  12.         float larg, comp, area, perim;
  13.        
  14.     public:
  15.         /* Contrutor da classe \'retangulo\', chamado somente na
  16.         declaracao de um objeto do tipo \'retangulo\'. Qualquer chamada
  17.         dessa funcao no resto do codigo ira gerar um erro de compilacao
  18.         (nao sera gerado um arquivo executavel) */
  19.         retangulo(float L, float C);
  20.        
  21.         /* Outro contrutor da classe \'retangulo\', chamado somente na
  22.         declaracao de um objeto do tipo \'retangulo\'. Qualquer chamada
  23.         dessa funcao no resto do codigo ira gerar um erro de compilacao
  24.         (nao sera gerado um arquivo executavel) */
  25.         retangulo();
  26.        
  27.         /* Funcao para definir os valores de \'larg\', \'comp\', \'area\' e \'perim\',
  28.         de acordo com os valores de entrada \'L\' (para a largura) e \'C\'
  29.         (para o comprimento do retangulo)*/
  30.         void define_ret(float L, float C);
  31.        
  32.         /* Funcao para escrever os valores de \'larg\', \'comp\',
  33.         \'area\' e \'perim\' na tela */
  34.         void escreve_tela();
  35. };
  36.  
  37. /* Definicao do construtor da classe \'retangulo\'
  38. Construtores devem ter o mesmo nome da classe,
  39. e nao retornam nenhum valor */
  40. retangulo::retangulo(float L, float C)
  41. {
  42.     /* \'larg\' recebe o valor de \'L\', que eh a primeira variavel de entrada */
  43.     larg = L;
  44.    
  45.     /* \'comp\' recebe o valor de \'C\', que eh a segunda variavel de entrada */
  46.     comp = C;
  47.    
  48.     /* Formula da area do retangulo */
  49.     area = larg * comp;
  50.    
  51.     /* Formula do perimetro do retangulo */
  52.     perim = 2 * (larg + comp);
  53. }
  54.  
  55. /* Definicao de outro construtor da classe \'retangulo\'
  56. Este construtor serĀ· chamado quando um objeto da classe
  57. \'retangulo\' for declarado sem nenhum valor de entrada,
  58. Nesse caso, vamos definir \'larg\', \'comp\', \'area\' e \'perim\'
  59. iguais a zero. Construtores devem ter o mesmo nome da classe,
  60. e nao retornam nenhum valor */
  61. retangulo::retangulo()
  62. {
  63.     larg = comp = area = perim = 0;
  64. }
  65.  
  66. /* Definicao da funcao que define os valores de \'larg\', \'comp\',
  67. \'area\' e \'perim\', de acordo com os valores de entrada \'L\'
  68. (para a largura) e \'C\' (para o comprimento do retangulo)*/
  69. void retangulo::define_ret(float L, float C)
  70. {
  71.   /* \'larg\' recebe o valor de \'L\', que eh a primeira variavel de entrada */
  72.     larg = L;
  73.    
  74.     /* \'comp\' recebe o valor de \'C\', que eh a segunda variavel de entrada */
  75.     comp = C;
  76.    
  77.     /* Formula da area do retangulo */
  78.     area = larg * comp;
  79.    
  80.     /* Formula do perimetro do retangulo */
  81.     perim = 2 * (larg + comp);
  82. }
  83.  
  84. /* Definicao da funcao que escreve os valores de
  85. \'larg\', \'comp\', \'area\' e \'perim\' na tela */
  86. void retangulo::escreve_tela()
  87. {
  88.     cout << "---------------------------------" << endl;
  89.     cout << "Largura = " << larg << endl;
  90.     cout << "Comprimento = " << comp << endl;
  91.     cout << "Area = " << area << endl;
  92.     cout << "Perimetro = " << perim << endl;
  93.     cout << "---------------------------------" << endl;
  94. }
  95.  
  96. int main()
  97. {
  98.     /* Criacao de um objeto da classe \'retangulo\'
  99.     Os valores entre parenteses serao assinalados
  100.     para as variaveis \'L\' e \'C\' no primeiro construtor da classe */
  101.     retangulo r1(2.0, 3.4);
  102.    
  103.     /* Criacao de outro objeto da classe \'retangulo\'
  104.     Como nao ha nenhum valor de entrada, sera chamado o segundo
  105.     construtor, \'retangulo()\' */
  106.     retangulo r2;
  107.    
  108.     /*Chamada da funcao que escreve os valores de
  109.     \'larg\', \'comp\', \'area\' e \'perim\' na tela. Como \'r2\'
  110.     foi declarado pelo segundo construtor, todas as suas
  111.     variaveis devem estar iguais a zero. */
  112.     cout << "---------------------------------" << endl;
  113.     cout << "r2 no inicio do codigo:\\n";
  114.     r2.escreve_tela();
  115.    
  116.     /*Chamada da funcao que define os valores de
  117.     \'larg\', \'comp\', \'area\' e \'perim\' para \'r2\'. */
  118.     r2.define_ret(10, 20);
  119.    
  120.     /*Chamada da funcao que escreve os valores de
  121.     \'larg\', \'comp\', \'area\' e \'perim\' na tela. Agora, \'r2\'
  122.     tera valores novos definidos para as suas variaveis */
  123.     cout << "r2 atualizado:\\n";
  124.     r2.escreve_tela();
  125.    
  126.     /*Chamada da funcao que escreve para \'r1\' os valores de
  127.     \'larg\', \'comp\', \'area\' e \'perim\' na tela */
  128.     cout << "r1:\\n";
  129.     r1.escreve_tela();
  130.        
  131.     /* Fim do codigo */
  132.     return 0;
  133. }
');