Форум: Форум C++Разное
Новые темы: 00
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оператор индексирования
 
 автор: Sanji   (02.02.2008 в 03:41)   письмо автору
 
 

Здравствуйте. Постигаю С++ по трудам Либерти. В одном из листингов дважды перегружается оператор индексирования: непостоянный оператор и версия для работы с постоянными объектами:
char & operator[](unsigned short offset);
char operator[](unsigned short offset) const;

Непонятно следующее: зачем возвращать объект char по значению, создавая лишнюю копию этого объекта, и почему бы не использовать всего одну универсальную версию оператора индексирования, например:
char & operator[](unsigned short offset) const;

?

  Ответить  
 
 автор: dima_s_d_s   (04.02.2008 в 08:21)   письмо автору
 
   для: Sanji   (02.02.2008 в 03:41)
 

Если я не ошибаюсь то:

1.)

char & operator[](unsigned short offset);


Этот перезагруженный оператор может менять значения, тоесть изминять содержимое, и возвращать char &

2.)

char operator[](unsigned short offset) const;


Этот же код, по идеи, просто возвращает данные не изминяя их. Так как функция объявлена с const содержимым.

3.)

char & operator[](unsigned short offset) const;


Этот вариант не позволит менять содержимое.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования