[C con Clase] C++ constructores.

Edmundo Cuadriello Narvaez ecnarvaez en yahoo.com
Vie Jul 10 01:12:04 CEST 2009


Holas Maria, 
 
el constructor debe por lo general ser solo usado para la inicializacion de variables, el arranque de algun proceso que se requiera, pero nunca solicitar datos del usuario.  
 
en tu caso podrias ya pasarselos como parametros al constructor. 
 
 
triangulo::triangulo( int lado_1, int lado_2, int lado_3 )
{ 
    lado1 = lado_1;
    lado2 = lado_2;
    lado3 = lado_3;
 
   //es todo lo que tendria que hacer el constructor.
}

podrias tambien definirlo desde el .H
 
triangulo( int lado_1, int lado_2, int lado_3 ) : lado1(lado_1), lado2(lado_2), lado3(lado_3) { }
 
 
Entonces lo que tienes que hacer es en el main,
1.- solicitar los valores para los 3 lados del triangulo.
2.- crear tu instancia de Triangulo, pasandole al constructor los valores que obtuviste.
3.- calcula lo que sea necesario con el objeto triangulo.
4.- cuando acabe el main()  se ejecutara tu destructor

otra sugerencia es que:
 
le agregues un metodo a tu clase Triangulo que se llame
 
Init( lado_1, lado_2, lado_3 )
{
    lado1 = lado_1;
    lado2 = lado_2;
    lado3 = lado_3;
}
 
asi los usuarios de tu clase podrian poner los valores que deseen si es que no los han obtenido cuando el objeto Triangulo fue creado :) . y ya por ultimo algun metodo de funcionalidad como  calc_Perimetro();
 
double calc_Perimetro()
{
    return (double)( lado1 + lado2 + lado3 );
}
 
....
 
..
como usarlo:
 
//creo mi objeto
Triangulo obj_triangulo();
//leo los valores
..
//le asigno los valores obtenidos con el metodo Init
obj_triangulo.Init( 10, 20, 30 );
// calculo el perimetro
double peri = obj_triangulo.calc_perimetro();
 
...
 
 
saludos
 

@ECN
GlobalVantage

--- El jue 9-jul-09, Maria Angulo Huiza <maesiv286 en hotmail.com> escribió:


De:: Maria Angulo Huiza <maesiv286 en hotmail.com>
Asunto: [C con Clase] C++ constructores.
A: cconclase en listas.conclase.net
Fecha: jueves 9 de julio de 2009, 15:58




#yiv923767685 .hmmessage P
{
margin:0px;padding:0px;}
#yiv923767685 {
font-size:10pt;font-family:Verdana;}



#yiv923767685 ExternalClass .EC_hmmessage P
{padding:0px;}
#yiv923767685 .ExternalClass body.EC_hmmessage
{font-size:10pt;font-family:Verdana;}#yiv923767685 
En un constructor se utilizar el 'cin>>' para que ingrese datos, o el constructor solamente trabaja con valores ya asignados en parametros?por qué si le pongo un destructor de la misma clase no aparece su contenido seguido del constructor??
 ejm:

#include<iostream.h>
#include<conio.h>
#include<math.h>
class triangulo
{    public:
        triangulo();
        ~triangulo();
        void mostrar();
    private:
        int lado1;
        int lado2;
        int lado3;
};

triangulo::triangulo()
{clrscr();
    cout<<"\nIgrese lados del triangulo: ";
    cin>>lado1>>lado2>>lado3;}//estara bien que mande a introducir valores con el constructor?

triangulo::~triangulo()
{ cout<<"\nDestructor del triangulo! ";
getch();
}

void triangulo::mostrar()
{ float area,p,sp;
    p=(lado1+lado2+lado3);
    sp=p/2;
    area=sqrt(sp*(sp-lado1)*(sp-lado2)*(sp-lado3));
    cout<<"\n\nEL perimetro del triangulo es: "<<p;
    cout<<"\nEL area del triangulo es: "<<area;
}

void main()
{ triangulo m;
m.mostrar();//no me aparece en ningun lado el contenido del desctructor
getch();
}




Disfruta antes que nadie del nuevo Windows Live Messenger 
-----Sigue archivo adjunto-----


_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


      ¡Obtén la mejor experiencia en la web! Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=mx
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090709/59518150/attachment.html>


Más información sobre la lista de distribución Cconclase