elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO] Problemas con Clases y C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Problemas con Clases y C++  (Leído 3,155 veces)
Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
[SOLUCIONADO] Problemas con Clases y C++
« en: 26 Enero 2012, 01:36 am »

Hola, miren tengo un problema con código en C++ que es sencillo pero llevo muy poco tiempo programando en C++ y no logro pillar el problema.

El codigo a grandes rasgos es el siguiente:

main.cpp
Código:
#include <cstdlib>
#include <iostream>
#include "clase.h"

using namespace std;

int main(int argc, char *argv[])
{
    Clase **Clases;
    std::cout << "INICIA" << std::endl;
    for (int i = 0; i < 5; i++)
    {
        Clases[i] = new Clase(i);
        std::cout << Clases[i]->Funcion() << std::endl;
    }
    std::cout << "TERMINA" << std::endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}

clase.h
Código:
#ifndef Clase_H
#define Clase_H

/*
 * Clase
 */
class Clase
{
public:
// class constructor
Clase(int i);
// class destructor
~Clase();
// Funcion
int Funcion();

private:
        int indice;
};

#endif // Clase_H

clase.cpp
Código:
#include "clase.h" // class's header file

// class constructor
Clase::Clase(int i)
{
    this->indice = 1000+i;
}

// class destructor
Clase::~Clase()
{
}

int Clase::Funcion()
{
    return this->indice;
}

Bueno, el código original es mucho mas grande pero con este logre acotar mi problema, lo que pasa es que no logro poder manipular los datos de mis objetos de Clase que se encuentra apuntados desde **Clases. El programa se cierra al momento de ejecutarse. :S

Espero alguien logre darme una mano ya que llevo caso 2 días con la pelea y no logro solucionar mi error.


« Última modificación: 26 Enero 2012, 06:57 am por Xephiro » En línea

Uknow

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Problemas con Clases y C++
« Respuesta #1 en: 26 Enero 2012, 03:19 am »

Si ya estas usando el nombre de espacio, no es necesario usar std::.
El puntero this tampoco es necesario en este caso y cuando reservas memoria lo estas haciendo mal. xP

fijate, prueba a ver si talvez asi te funcione.


Código
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. class Clase
  7. {
  8. public:
  9. // class constructor
  10. Clase(int i);
  11. // class destructor
  12. ~Clase();
  13. // Funcion
  14. int Funcion();
  15.  
  16. private:
  17.        int indice;
  18. };
  19.  
  20. Clase::Clase(int i)
  21. {
  22.    indice = 1000+i;
  23. }
  24.  
  25. // class destructor
  26. Clase::~Clase()
  27. {
  28. }
  29.  
  30. int Clase::Funcion()
  31. {
  32.    return indice;
  33. }
  34.  
  35.  
  36. int main(int argc, char *argv[])
  37. {
  38.    Clase **Clases = new Clase* [sizeof(Clase)];
  39.    cout << "INICIA" << endl;
  40.  
  41.    for (int i = 0; i < 5; i++)
  42.    {
  43.        Clases[i] = new Clase(i);
  44.        cout << Clases[i]->Funcion() << endl;
  45.    }
  46.    cout << "TERMINA" << endl;
  47.  
  48.    for (int i = 0; i < 5; i++)
  49.      delete[] Clases[i];
  50.      delete Clases;
  51.  
  52.    system("PAUSE");
  53.    return 0;
  54. }
  55.  

un saludete : )


En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: Problemas con Clases y C++
« Respuesta #2 en: 26 Enero 2012, 04:30 am »

Código
  1.    Clase **Clases = new Clase* [sizeof(Clase)];
  2.  

em, nop... el tamaño es el del array, no el de la clase...

Código
  1.    Clase **Clases = new Clase* [5];//5 en este caso...
  2.  

S2
En línea

Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
Re: Problemas con Clases y C++
« Respuesta #3 en: 26 Enero 2012, 06:57 am »

Muchas gracias Uknow y Karman, me sirvió completamente su ayuda :D  ;-) ;-)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Problemas con Clases y C++
« Respuesta #4 en: 26 Enero 2012, 07:26 am »


Código
  1.    for (int i = 0; i < 5; i++)
  2.      delete[] Clases[i];
  3.      delete Clases;
  4.  
  5.    system("PAUSE");
  6.  

tengo entendido que cuando se declara un tipo de dato ** se proceden a eliminar de esta manera:

Código
  1.    int i = 0;
  2.    for (i = 0; i < 5; i++)
  3.        delete Clases[i];
  4.    delete[] Clases;
  5.  

y en lugar de system("PAUSE"); se puede usar cin.get();

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Clases en VB
Programación Visual Basic
Kizar 0 1,212 Último mensaje 17 Marzo 2006, 16:56 pm
por Kizar
clases
Programación Visual Basic
elmaro 2 1,747 Último mensaje 12 Septiembre 2006, 05:51 am
por elmaro
clases en C++
Programación C/C++
mapers 4 4,051 Último mensaje 25 Enero 2011, 06:21 am
por mapers
Problemas al dar Clases en Java
Java
Senior++ 6 4,039 Último mensaje 27 Octubre 2012, 16:16 pm
por [Case]
Problemas con codigo de clases en c++
Programación C/C++
ianmorar03 3 2,022 Último mensaje 27 Marzo 2016, 22:41 pm
por crack81
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines