Форум программистов, компьютерный форум CyberForum.ru

Скотт Мейерс. 55 верных способов... - C++

Восстановить пароль Регистрация
 
don khuan
 Аватар для don khuan
2 / 2 / 0
Регистрация: 02.08.2011
Сообщений: 22
26.02.2012, 16:32     Скотт Мейерс. 55 верных способов... #1
Всем привет! Глава 1, правило 3. Здесь идет рассуждение о константных и неконстантных функциях-членах.

В книге есть такая перегрузка
C++
1
2
const char* operator[] (int pos) const;
char* operator[] (int pos) const;
во-первых у меня это не компилится в vs2010 (повторное определение operator[])
во-вторых зачем нужна такая перегрузка? мне ясна цель следующей перегрузки
C++
1
2
const char* operator[] (int pos) const;
char* operator[] (int pos) ;
а 1я перегрузка непонятна. Допустим у меня есть:
C++
1
2
const char symb1;
char symb2;
для обеих переменных с успехом выполняются и operator[] const и просто operator[].

Помогите разобраться с этим пожалуйста) или может в книге опечатка и там имеется ввиду перегрузка, как во 2м случае?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 16:32     Скотт Мейерс. 55 верных способов...
Посмотрите здесь:

C++ Скотт Мейерс - Эффективное использование C++. 55 верных советов ...
Пять способов ввода и вывода данных C++
C++ Сколько есть способов выплатить сумму
C++ Найти количество способов
C++ Отличие способов приведения
C++ Какими из приведенных способов можно задавать функцию main
Подсчет количества способов создания команды из 6 человек C++
Вычислить количество способов группировки K предметов из N при больших N C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
26.02.2012, 16:52     Скотт Мейерс. 55 верных способов... #2
C++
1
2
const char* operator[] (int pos) const;
char* operator[] (int pos) const;
Это не правильно. Правильно
C++
1
2
const char* operator[] (int pos) const;
char* operator[] (int pos);
Первая нужна для rvalue, а вторая перегрузка для lvalue.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
26.02.2012, 16:54     Скотт Мейерс. 55 верных способов... #3
don khuan, видимо, в книге опечатка. Здесь действительно никакой перегрузки нет (потому что "перегрузить" метод по возвращаемому значению нельзя). Должно быть так, как написали вы (ключом для разрешения перегрузки здесь является const для метода, а не для возвращаемого значения).
Yandex
Объявления
26.02.2012, 16:54     Скотт Мейерс. 55 верных способов...
Ответ Создать тему
Опции темы

Текущее время: 01:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru