Buenas.
gracias por la respuesta, pero creo que no entendiste lo que pido.
Voy a tratar de explicarlo un poco mejor, haber si se entiende.
La calse que puse ahi, es de modo ilustrativo, era con la idea de que se entienda el concepto.
La clase real tiene una matriz de tres dimensiones de punteros a otra clase.
Algo como
class calse1
{
...
private:
clase2 ****punteros;
};
la idea era poder
sobrecargar el operador [ ] de la siguiente forma
const clase2* operator[][][](int x, int y, int z){
return punteros[x][y][z];
}
para poder despues hacer algo como:
clase1[x][y][z]->metodoclase2();
y evitar tener que hacer algo como:
clase2* clase1::getElemento(int x, int y, int z){
return punteros[x][y][z];
}
para despues tener que hacer algo como:
clase2 * pclase2;
pclase2 = clase1.getElemento(x,y,z);
pclase2->metodoclase2();
Creo que en todo caso haria algo como:
typedef struct
{
int x,y,z;
} coor;
const clase2* operator[](coor c){
return punteros[c.x][c.y][c.z];
}
pero lo ideal es la primera opcion, ya que lo necesito para hacer bucles (bastante grandes), y me ahorro andar copiando las variables en la estructura para despues pasarla.
Bueno, espero que se entienda mejor la idea.
Saludos