Wymyślony przykład, aby odpowiedzieć na pytanie:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
To się nie skompiluje, ponieważ operator [] nie jest stałą.
Jest to niefortunne, ponieważ składnia [] wygląda bardzo czysto. Zamiast tego muszę zrobić coś takiego:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
To zawsze mnie wkurza. Dlaczego operator [] nie jest stałą?
operator[]
dać, gdy dany element nie istnieje?