Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BrendiisFox en 18 Agosto 2015, 05:24 am



Título: Objetos y Clases en c++
Publicado por: BrendiisFox en 18 Agosto 2015, 05:24 am
Buenas noches, estoy haciendo un proyecto en c++ donde empezamos implementar clases, objetos y herencias. Mi duda es, cuando lleno esto como los mando a llamar en el main. No se si me explico y se me equivoco en algo por favor corrijanme

Por ejemplo

Código
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <windows.h>
  7.  
  8.  
  9. using namespace std;
  10.  
  11. class CSuma{
  12.  
  13. private:
  14. double suma;
  15.  
  16. public:
  17. CCuenta (double suma_inicial, double respuesta);
  18. void resultado(double respuesta);
  19.  
  20. };
  21.  
  22. void Csuma::resultado(double rrespuesta){
  23.  
  24. //informacion
  25.  
  26. }
  27.  
  28.  
  29.  
  30. int main(int argc, char *argv[]) {
  31.  
  32. //como lo mando a llamar desde aqui
  33.  
  34. }
  35.  
  36.  
  37.  


de antemano, muchas gracias!


Título: Re: Objetos y Clases en c++
Publicado por: DarK_FirefoX en 18 Agosto 2015, 05:48 am
Para utilizar una clase en el método main(), lo que tienes que hacer es crear una instancia de la clase. O sea inicializar el objeto.

Imagino que si estás estudiando, vas a ir familiarizandote con estos conceptos.

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.

En C++,si no definimos un contructor el compilador creará uno por defecto, sin parámetros, que   no hará absolutamente nada. Los datos miembros del los objetos declarados en el programa contendrán basura.

Los constructores son especiales por varios motivos:

  • Tienen el mismo nombre que la clase a la que pertenecen.
  • No tienen tipo de retorno, y por lo tanto no retornan ningún valor.
  • No pueden ser heredados.
  • Por último, deben ser públicos, no tendría ningún sentido declarar un constructor como privado, ya que siempre se usan desde el exterior de la clase, ni tampoco como protegido, ya que no puede ser heredado.

Si quieres leer más sobre esto, llegate por aquí: http://c.conclase.net/curso/?cap=029

Ahora:

Iría algo así como:

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <windows.h>
  6.  
  7. using namespace std;
  8.  
  9. class CSuma{
  10.  
  11. private:
  12. double suma;
  13.  
  14. public:
  15.                CSuma(); //Constructor que no recibe parámetro, tampoco se que objetivo tiene tu clase, eso debes controlarlo tu
  16. CCuenta (double suma_inicial, double respuesta);
  17. void resultado(double respuesta);
  18.  
  19.  
  20. };
  21.  
  22. void Csuma::resultado(double rrespuesta){
  23.  
  24. //informacion
  25.  
  26. }
  27.  
  28.  
  29.  
  30. int main(int argc, char *argv[]) {
  31.  
  32. CSuma miInstanciaDeClaseCSuma;
  33.  
  34. }

Nota: Para declarar objetos usando el constructor por defecto o un constructor que hayamos declarado sin parámetros no se debe usar el paréntesis:

Código
  1. MiClase instanciaDeMiClase(); //Error

Lo correcto es hacer:

Código
  1. MiClase instanciaDeMiClase;

Espero te haya quedado claro.

Salu2s


Título: Re: Objetos y Clases en c++
Publicado por: BrendiisFox en 18 Agosto 2015, 05:58 am
Mas o menos, pero muchas gracias por tu respuesta.

Estoy trabajando con un programa para hacer cuentas. Es algo basico pero no tengo mucha base sobre este tema.
Va algo asi, no es que el dconstructo CSuma estuviese vacio.

Código
  1.  
  2. class CCuenta{
  3.  
  4. private:
  5. double saldo;
  6. double interes;
  7.  
  8. public:
  9. CCuenta (double saldo_inicial, double inter);
  10. void ingresar(double i);
  11.  
  12.  


Título: Re: Objetos y Clases en c++
Publicado por: DarK_FirefoX en 18 Agosto 2015, 16:23 pm
Entonces ¿Qué es lo que no te queda claro?

Yo te lo puse vacío porque esa clase la estas diseñando tu, y no puedo adivinar que es lo que quieres hacer con ella.

Ejemplo:

Supongamos que yo tengo una clase Fecha, que almacena el día, el mes y el año. Es constructor pues recibirá esos parámetros, y entonces en el cuerpo del constructor se los asigno a las propiedades que tendrá mi clase que representen al día, el mes y el año.

Salu2s