przeciążanie operatorów [] [] w c ++
Piszę klasę macierzy 3x3 w c ++.
glm :: mat3 zapewnia dostęp do danych macierzy poprzez[][] operator
składnia.
na przykładmyMatrix[0][0] = 1.0f;
ustawiłby pierwszy wiersz, pierwszy wpis w kolumnie1.0f.
Chciałbym zapewnić podobny dostęp. Jak mogę przeciążać[][] operator
s?
Próbowałem następujących rzeczy, ale dostaję błędy:
nazwa operatora musi być zadeklarowana jako funkcja
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;
}
Jaki jest właściwy sposób przeciążenia tego operatora?