Bonjour,

Je développe une classe Matrice, et après avoir cherché sur internet, je suis parvenu à avoir une classe qui marche bien. Néanmoins, dans un des exemples, j'ai noté que l'opérateur () était surchargé 2 fois, et j'aimerai comprendre pourquoi.

Voici la partie de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
template<typename T> 
class Matrix
{
public:
 
    T&  operator()(size_t r, size_t c) 		  { return(tableau[c + r*col]);  } 
    T   operator()(size_t r, size_t c)  const   {  return(tableau[c + r*col]);  } 
 
.....
 
private :
    size_t      row;   // nombre de lignes
    size_t      col;   // nombre de colonnes
    vector<T> 	tableau;
 
};

je vois bien la première surcharge. Mais la seconde ? et dans quel contexte ?

Merci bien