Esempio artificioso, per il bene della domanda:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Non verrà compilato, poiché l'operatore [] non è const.
Questo è un peccato, poiché la sintassi [] sembra molto pulita. Invece, devo fare qualcosa del genere:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Questo mi ha sempre infastidito. Perché l'operatore [] non è const?
operator[]produrre nel caso in cui l'elemento dato non esiste?