[ Foro de C# ]
Hola!
He intentado hacer el ejercicio del punto 6.12: "Desarrolla una clase "Matriz", que represente a una matriz de 3x3, con métodos para indicar el valor que hay en una posición, leer el valor de una posición, escribir la matriz en pantalla y sumar dos matrices."
Pero no soy capar de crear una clase Matriz que se comporte como un array para poder hacer la sobrecarga de operadores del ejemplo: "public static Matriz operator +(Matriz mat1, Matriz mat2)"
¿Cómo has creado esa clase Matriz?
Gracias, un saludo.
¿Cómo has hecho la clase Matriz? Ayudaría ver el código que ya has implementado.
Lo más natural es que internamente contenga un array bidimensional, de modo que esas operaciones se limitan a recorrerlo con un doble "for" anidado.
La clase Matriz no la tengo implementada porque veo imposible implementar una clase que se comporporte como un array bidimensional.
Quiero decir que la sintaxis:
Matriz matriz = new Matriz() está claro,
pero depues la sintasis :
matriz[0,0] no lo veo.
Sí veo algo como
matriz.algo[0,0]
Por eso te pregunto como la has implementado tú. Creo que en el ejercicio hay un error de enunciado.
Saludos.
Olvídate de los corchetes. Lo importante de una clase no es la notación (no todos los lenguajes te permitirán redefinir el operador [] ), sino que engloba unos datos y un comportamiento. Se podrían hacer cosas como
dato = Matriz.Leer(3,5);
Matriz.Guardar(3, 5, 9.4);
resultado = Matriz.CalcularDeterminante();
y una notación como esa (o muy similar) sería válida en casi cualquier lenguaje orientado a objetos.
Ahora ya me queda claro... en C# no se puede redefinir el operador [].
Gracias.
Así es. Si quieres más detalles, en la propia MSDN tienes la lista de operadores que se pueden sobrecargar
http://msdn.microsoft.com/en-us/library/8edha89s.aspx
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)