C-AYUDA C\C++
BIENVENIDO AL FORO C-AYUDA!

Ayuda con sobrecarga del operador de indexacion [] para matriz

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda con sobrecarga del operador de indexacion [] para matriz

Mensaje  wilsame.6 el Dom Mayo 18, 2014 12:49 am

El problema radica en qué tengo que sobrecargar el operador de indexacion "[]" para poder asignar y recuperar un objeto Tipo de una matriz con punteros al Tipo (objeto). Todo es en lenguaje C++

Este es el codigo:

#include <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;


class numero{
public:
numero(int valor) : valor(valor){
}

virtual ~numero(){
cout << "adios numero: " << valor << endl;
}

int obtenerNumero() const{
return valor;
}

string toString() const{
stringstream s;
s << obtenerNumero();
return s.str();
}

private:
int valor;
};

class matriz{
public:
matriz(unsigned int fil, unsigned int col):fil(fil), col(col){
matrix = new numero**[fil];
for (unsigned int i = 0; i < fil; i++){
matrix[i] = new numero*[col];
}

for (unsigned int x = 0; x < fil; x++)
for (unsigned int y = 0; y < col; y++){
matrix[x][y] = 0;
}
}

virtual ~matriz(){
for (unsigned int i = 0; i < fil; i++)
for (unsigned int j = 0; j < col; j++){
delete matrix[i][j];
}

for (unsigned int i = 0; i < fil; i++){
delete[] matrix[i];
}

delete[] matrix;
}

string toString()const{
stringstream s;
for (unsigned int i = 0; i < fil; i++)
for (unsigned int j = 0; j < col; j++){
s << "(" << matrix[i][j]->toString();
s << " )" << "\t";
}
return s.str();
}


private:
numero*** matrix;
unsigned int fil;
unsigned int col;
};


int main(int, char**){
matriz* m = new matriz(2,2);

numero* n1 = new numero(1);
numero* n2 = new numero(2);
numero* n3 = new numero(3);
numero* n4 = new numero(4);

m[0][0] = n1;
m[0][1] = n2;
m[1][0] = n3;
m[1][1] = n4;


cout << "MATRIZ SETEADA: " << "\n";
cout << m->toString() << "\n";
cout << "---------------------------------------" << "\n\n\n";

numero * nu;
nu = m[1][0];
cout << nu->toString();
cout << endl;
delete m;

cin.get();
return 0;
}

wilsame.6

Mensajes : 1
Puntos : 3
Reputación : 0
Fecha de inscripción : 18/05/2014

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.