/* Primeiro exemplo de como utilizar construtores para classes */
#include <iostream>
using namespace std;
/* Classe que representa retangulos */
class retangulo
{
/* Variaveis privadas para representar largura,
comprimento, area e perimetro do retangulo */
float larg, comp, area, perim;
public:
/* Contrutor da classe \'retangulo\', chamado somente na
declaracao de um objeto do tipo \'retangulo\'. Qualquer chamada
dessa funcao no resto do codigo ira gerar um erro de compilacao
(nao sera gerado um arquivo executavel) */
retangulo(float L, float C);
/* Funcao para escrever os valores de \'larg\', \'comp\',
\'area\' e \'perim\' na tela */
void escreve_tela();
};
/* Definicao do construtor da classe \'retangulo\'
Construtores devem ter o mesmo nome da classe,
e nao retornam nenhum valor */
retangulo::retangulo(float L, float C)
{
/* \'larg\' recebe o valor de \'L\', que eh a primeira variavel de entrada */
larg = L;
/* \'comp\' recebe o valor de \'C\', que eh a segunda variavel de entrada */
comp = C;
/* Formula da area do retangulo */
area = larg * comp;
/* Formula do perimetro do retangulo */
perim = 2 * (larg + comp);
}
/* Definicao da funcao que escreve os valores de
\'larg\', \'comp\', \'area\' e \'perim\' na tela */
void retangulo::escreve_tela()
{
cout << "---------------------------------" << endl;
cout << "Largura = " << larg << endl;
cout << "Comprimento = " << comp << endl;
cout << "Area = " << area << endl;
cout << "Perimetro = " << perim << endl;
cout << "---------------------------------" << endl;
}
int main()
{
/* Criacao de um objeto da classe \'retangulo\'
Os valores entre parenteses serao assinalados
para as variaveis \'L\' e \'C\' no construtor da classe */
retangulo r(2.0, 3.4);
/*Chamada da funcao que escreve os valores de
\'larg\', \'comp\', \'area\' e \'perim\' na tela */
r.escreve_tela();
/* A chamada abaixo esta errada. Nao podemos chamar
o construtor da classe em nenhuma outra parte do
codigo que nao seja na declaracao de variaveis e objetos.
Caso voce "des-comente" a linha abaixo, o codigo nao ira compilar*/
//r.retangulo(10.0, 3.4);
/* Fim do codigo */
return 0;
}