Contoh yang dibuat-buat, demi pertanyaan:
void MyClass::MyFunction( int x ) const
{
std::cout << m_map[x] << std::endl
}
Ini tidak akan bisa dikompilasi, karena operator [] adalah non-const.
Ini sangat disayangkan, karena sintaks [] terlihat sangat bersih. Sebaliknya, saya harus melakukan sesuatu seperti ini:
void MyClass::MyFunction( int x ) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Ini selalu mengganggu saya. Mengapa operator [] bukan konstanta?
operator[]
dihasilkan jika elemen yang diberikan tidak ada?