J'ai une base de code, dans lequel la classe Matrix, ces deux définitions sont là pour ()
opérateur:Que fait 'const' dans la surcharge operator()?
template <class T> T& Matrix<T>::operator() (unsigned row, unsigned col)
{
......
}
template <class T> T Matrix<T>::operator() (unsigned row, unsigned col) const
{
......
}
Une chose que je comprends est que le second ne renvoie pas la référence, mais qu'est-ce que const
signifie en la deuxième déclaration? Aussi quelle fonction est appelée quand je dis mat(i,j)
?
Le modificateur const sur les forces de fonction compilateur pour vérifier que la fonction ne modifie pas l'état de classe ou permet de changer d'état de classe (en passant des références/pointeurs ou en utilisant des fonctions non-const). –