elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:04  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  [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 598 veces)
Xephiro

Desconectado Desconectado

Mensajes: 226



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

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 por Xephiro » En línea
Uknow

Desconectado Desconectado

Mensajes: 20


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

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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
class Clase
{
public:
// class constructor
Clase(int i);
// class destructor
~Clase();
// Funcion
int Funcion();
 
private:
       int indice;
};
 
Clase::Clase(int i)
{
   indice = 1000+i;
}
 
// class destructor
Clase::~Clase()
{
}
 
int Clase::Funcion()
{
   return indice;
}
 
 
int main(int argc, char *argv[])
{
   Clase **Clases = new Clase* [sizeof(Clase)];
   cout << "INICIA" << endl;
 
   for (int i = 0; i < 5; i++)
   {
       Clases[i] = new Clase(i);
       cout << Clases[i]->Funcion() << endl;
   }
   cout << "TERMINA" << endl;
 
   for (int i = 0; i < 5; i++)
     delete[] Clases[i];
     delete Clases;
 
   system("PAUSE");
   return 0;
}
 

un saludete : )


En línea
Karman


Desconectado Desconectado

Mensajes: 657



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

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

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

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

S2
En línea

Xephiro

Desconectado Desconectado

Mensajes: 226



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

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

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


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


Código
    for (int i = 0; i < 5; i++)
     delete[] Clases[i];
     delete Clases;
 
   system("PAUSE");
 

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

Código
    int i = 0;
   for (i = 0; i < 5; i++)
       delete Clases[i];
   delete[] Clases;
 

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

Dulces Lunas!¡.
En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
clases
Programación Visual Basic
elmaro 2 442 Último mensaje 12 Septiembre 2006, 05:51
por elmaro
Clases 113 a 116
Programación C/C++
maxwellnewage 2 500 Último mensaje 18 Septiembre 2009, 00:49
por maxwellnewage
Clases C (EDH)
Programación C/C++
maxwellnewage 0 411 Último mensaje 14 Enero 2010, 02:57
por maxwellnewage
clases en C++
Programación C/C++
mapers 4 1,081 Último mensaje 25 Enero 2011, 06:21
por mapers
Clases
.NET
TheGhost(Z) 4 562 Último mensaje 14 Febrero 2011, 18:15
por Edu
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines