Ü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?[][] operators?

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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage