Les deux te permettent d'acceder a tes données.
T& operator()(size_t r, size_t c)
Cette methode (1) te donne acces en mode lecture ecriture.
T operator()(size_t r, size_t c) const
Cette methode (2) te retourne une copie et tu en faire ce que tu veux.
Une suggestion est de l'écrire comme ça, l'implementation ne change pas.
const T& operator()(size_t r, size_t c) const
Ton compilateur choisira la methode appropriée.
Un example:
1 2 3 4 5
|
Matrix<std::string> stringMatrix;
const std::size_t sz = stringMatrix(1, 2).size(); // methode (2) est utilisée.
stringMatrix(1, 2).clear(); // methode (1) est utilisée. |
Partager