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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
don khuan
2 / 2 / 0
Регистрация: 02.08.2011
Сообщений: 22
#1

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

26.02.2012, 16:32. Просмотров 732. Ответов 2
Метки нет (Все метки)

Всем привет! Глава 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++. 55 верных советов ... - C++
Где найти книгу в элетронном виде??

Как подсчитать максимальное количество верных и неверных ответов? - C++
оригинал вопроса: The program should display, separately, the longest streak, i.e. (a) the maximum number of correct answers in a row ...

Отличие способов приведения - C++
Есть ли отличия между (int) и static_cast<int>?

Найти количество способов - C++
Есть две задачи: Буду рад решению хотя бы одной!:) Так как я НЕ программист:-|, хотелось бы услышать подробное объяснение...

Пять способов ввода и вывода данных - C++
Помогите пожалуйста с решение задачи. Написать программу, реализующую 5 способов ввода данных (типа символ) и 5 способов вывода...

Сколько есть способов выплатить сумму - C++
В Эстонии в обращении находятся 1,2,5,10,25,50,100 и 500 - кроновые купюры. Написать программу, которая сможет найти сколько есть...

Отличие способов передачи массива в функцию - C++
В чем отличие: double sum(double x) от double sum(double *x) ?

Подсчет количества способов создания команды из 6 человек - C++
Нужен алгоритм создания программы, которая подсчитывает количество способов создания команды из 6 человек, в которой не менее 2 девочек,...

В чём отличие разных способов объявления переменных? - C++
в чем отличие int a(2); от int a=2; И как писать правильней

Сколько существует способов составить отрезок длиной 1 метр? - C++
Сколько существует способов составить отрезок длиной 1 метр из отрезков длиной А и В см?

Проверить корректность двух способов выделения динамической памяти - C++
Решил задачку на динамическое выделение памяти, двумя способами. Так вот сам вопрос: подскажите, какое решение более...

Определить количество способов укладки плиток на оставшиеся места - C++
Задача G. Укладка плитки (Время: 1 сек. Память: 16 Мб Баллы: 100) В процессе ремонта в Лаборатории Информационных Технологий строителям...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
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
Эксперт С++
4961 / 3037 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.02.2012, 16:54     Скотт Мейерс. 55 верных способов... #3
don khuan, видимо, в книге опечатка. Здесь действительно никакой перегрузки нет (потому что "перегрузить" метод по возвращаемому значению нельзя). Должно быть так, как написали вы (ключом для разрешения перегрузки здесь является const для метода, а не для возвращаемого значения).
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru