#define ROW 3
#define COL 4
class Matrix
{
private:
int mat[ROW][COL];
//.....
//.....
};
int main()
{
Matrix m;
int a = m[0][1]; // reading
m[0][2] = m[1][1]; // writing
}
Creo que directamente no es posible sobrecargar [] [].Cómo sobrecargar el operador de índice de matriz para la clase contenedora de matriz 2D?
Creo que tengo que hacerlo indirectamente, pero ¿cómo implementarlo?
¿Un buen optimizador podría cambiar la versión proxy en un código tan eficiente como 'operator()'? – GManNickG
Eso depende del compilador. Pero me gusta hacer que el uso de mis objetos sea tan intuitivo como posible. Cuanto más natural se siente al usar el objeto, menos probable es la operatividad de los errores. Personalmente prefiero el proxy pero son seis de media docena de los otros para esta situación y no podría decir definitivamente que uno es mejor que el otro. –
Sí, siempre he usado 'operator()' pero creo que usaré un proxy esta vez (escribo motores de juego) y veré si crea algún problema. No me puedo imaginar que sería demasiado difícil para el compilador hacerlo tan rápido, ya que tendrá la definición completa de todos los operadores. – GManNickG