Re[5]: Моя первая реализация String
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 08.07.04 15:04
Оценка:
Здравствуйте, Вадим Никулин, Вы писали:

ВН>При любом изменении объекта m_nLength должно меняться. Например, написав

ВН>
ВН>   str[5] = 0;
ВН>

ВН>у нас длина будет изменена. Но в операторе мы еще не знаем, как изменится длина, поэтому там мы можем написать
ВН>
ВН>   m_nLength = -1;
ВН>

ВН>а метод Length переписать так:
ВН>
ВН>   int Length() const
ВН>   {
ВН>      if( m_nLength==-1 )
ВН>         m_nLength = strlen( ... );
ВН>      return m_nLength;
ВН>   }
ВН>

ВН>Вот в этом случае mutable и потребуется.

Тода лучше ввести operator [] который смог бы отличить чтение (константный) от записи (неконстантный оператор) и изменять m_nLength (если требуется) в последнем.
HgLab: Mercurial Server and Repository Management for Windows
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.