[C con Clase] C++ constructores.

Edmundo Cuadriello Narvaez ecnarvaez en yahoo.com
Vie Jul 10 19:32:12 CEST 2009


Holas Marta, 
 
bien la verdad no es lo mas recomendable, pero si asi lo quieres, 
 
te cambie un poco tu clase triangulo dale una revisada cualquier duda, me comentas. .
 
te mande los archivos .cpp y el .h  ademas del .dsp y .dsw (para el VC++ 6.0 estos dos ultimos)
 
recibe un saludo
 

ATTE:
ISC Edmundo Cuadriello Narvaez
Software Engineer
C++, X++, C#, JAVA programmer.
Tel: 33-36899320
Cel: 33-13555312

ecnarvaez en yahoo.com
ecnarvaez en hotmail.com
"All for Linux, and Linux for every one"

--- El jue 9-jul-09, Mar¡Ta - <maesiv286 en hotmail.com> escribió:


De:: Mar¡Ta - <maesiv286 en hotmail.com>
Asunto: Re: [C con Clase] C++ constructores.
A: cconclase en listas.conclase.net
Fecha: jueves 9 de julio de 2009, 23:50




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


ok,gracias =D
pero si no quiero usar parametros en mi constructor? y quiero q use los valores ingresados por el teclado?? como hago?






Date: Thu, 9 Jul 2009 16:12:04 -0700
From: ecnarvaez en yahoo.com
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] C++ constructores.






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




#yiv453911009 .ExternalClass #EC_yiv923767685 .EC_hmmessage P
{padding:0px;}
#yiv453911009 .ExternalClass #EC_yiv923767685
{font-size:10pt;font-family:Verdana;}




#yiv453911009 .ExternalClass #EC_yiv923767685 EC_ExternalClass .EC_EC_hmmessage P
{padding:0px;}
#yiv453911009 .ExternalClass #EC_yiv923767685 .EC_ExternalClass body.EC_EC_hmmessage
{font-size:10pt;font-family:Verdana;}

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.br> http://downloads.yahoo.com/ieak8/?l=mx 


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/20090710/55b8c580/attachment.html>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Triangulo.cpp
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090710/55b8c580/attachment.pl>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Triangulo.h
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090710/55b8c580/attachment.h>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Triangulo.dsw
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090710/55b8c580/attachment-0001.pl>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Triangulo.dsp
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090710/55b8c580/attachment-0002.pl>


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