Überladen von [] [] Operatoren in c ++
Ich schreibe eine Matrix-3x3-Klasse in C ++.
glm :: mat3 bietet Zugriff auf Matrixdaten über die[][] operator
Syntax.
z.B.myMatrix[0][0] = 1.0f;
würde den Eintrag für die erste Zeile und die erste Spalte auf setzen1.0f.
Ich möchte einen ähnlichen Zugang bereitstellen. Wie kann ich das überlasten?[][] operator
s?
Ich habe Folgendes versucht, erhalte jedoch Fehler:
Bedienername muss als Funktion deklariert werden
const real operator[][](int row, int col) const
{
// should really throw an exception for out of bounds indices
return ((row >= 0 && row <= 2) && (col >= 0 && col <= 2)) ? _data[row][col] : 0.0f;
}
Was ist der richtige Weg, um diesen Operator zu überlasten?