[c++][Ayuda] Constructor y destructor con array bidimensional.

Iniciado por anonimo12121, 28 Marzo 2012, 20:01 PM

0 Miembros y 1 Visitante están viendo este tema.

anonimo12121

Bueno el tema es que quiero saber como crear una array bidimensional de un miembro dentro de una clase. y despues destruirlo.

llevo esto de código lo estoy haciendo sin tener puñetera idea. Aunque he mirado ya por internet. a ver si me lo podéis solucionar :!

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
class c1{
    private:
        int **tabla;
    public:
        c1();//contructor
        ~c1();
        void Crear();//pone valores
        void Print();//imprime en pantalla
};
c1::c1(){
    tabla=new int*[10];
    for(int i=0;i<10;i++)tabla[i]=new int[10];
};
c1::~c1(){
    for(int i=0;i<10;i++)delete[] tabla[i];
    delete[] tabla;
};
void c1::Crear(){
    for(int y=0;y<10;y++)
        for(int x=0;x<10;x++)
            tabla[y][x]=(y*10)+x;
};
void c1::Print(){
    for(int y=0;y<10;y++){
        for(int x=0;x<10;x++)cout << tabla[y][x] << " ";
        cout << endl;
    }
};
int main(int argc,char *argv[]){
    c1 c;
    c.Crear();
    c.Print();
    cout << endl << endl;
    c.~c1();
    c.Print();
    return 0;
};
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

Eternal Idol

#1
Hasta llamar al destructor no veo el problema, despues obviamente llamar a Print tal y como esta implementado es un error de logica, la memoria de tabla ya fue liberada. Si llamas al destructor por tu cuenta tene en cuenta que el compilador igual lo va a llamar cuando c salga de su ambito ... no lo llames mejor, no tiene ningun sentido.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

anonimo12121

Es que estoy haciendo un función para mi proyecto y arreglando código, y la función por ejemplo tiene que resetear los datos de miembros de una clase, y había pensado en utilizar el destructor para volverla al inicio pero creo que estoy pensando mal verdad?.

Debería mejor hacer una función por ejemplo void reiniciar(); y que esta ponga los valores a 0. en vez de liberar memoria.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746