Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/10: Рейтинг темы: голосов - 10, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 27.07.2009
Сообщений: 13
1

Перегрузка []

09.08.2009, 17:19. Просмотров 1898. Ответов 1
Метки нет (Все метки)

Здравствуйте все, снова.

C++
1
2
char operator[](const unsigned short  i )const ;
char & operator[](const unsigned short  i ) ;
Пишу
C++
1
2
3
MyStrClass str("test")
cout<<str[0];
str[0]='b';
Как компилятор определяет когда и какой оператор[] использовать?
Есть какое-то соглашение?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2009, 17:19
Ответы с готовыми решениями:

Перегрузка в виде метода VS Перегрузка в виде функции друг
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

С++. Перегрузка
Нужна помощь! Буду рада любым идеям! Надо написать программу, которая перегружает операцию...

перегрузка
всем привет) мне нужна помощь)я пытаюсь научиться программировать на с++. вот первая проблема...

1
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
09.08.2009, 17:52 2
вот правильные прототипы оператора:
C++
1
2
3
4
5
6
char &operator[](const size_t index) {
  return data[index];
}
const char &operator[](const size_t index) const {
  return data[index];
}
Цитата Сообщение от sledge Посмотреть сообщение
Как компилятор определяет когда и какой оператор[] использовать?
Есть какое-то соглашение?
C++ Primer, Fourth Edition
Providing Read and Write Access
One complication in defining the subscript operator is that we want it to do the right thing when used as either the left- or right-hand operand of an assignment. To appear on the left-hand side, it must yield an lvalue, which we can achieve by specifying the return type as a reference. As long as subscript returns a reference, it can be used on either side of an assignment.

It is also a good idea to be able to subscript const and nonconst objects. When applied to a const object, the return should be a const reference so that it is not usable as the target of an assignment.

Best Practises: Ordinarily, a class that defines subscript needs to define two versions: one that is a nonconst member and returns a reference and one that is a const member and returns a const reference.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2009, 17:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

перегрузка []
Как перегрузить operator так, чтобы когда я модифицировал массив то вызывалась простая версия, а...

Перегрузка *
Есть такой класс: class CMatrix{ valarray&lt;valarray&lt;double&gt; &gt; matrix; public: CMatrix...

Перегрузка.
Всем привет. Вот, попросили помочь, кому не сложно. Сам код: #ifndef OTREZOK_H #define...

перегрузка <<, >>, []
правильно ли я перегрузил &gt;&gt;, &lt;&lt;, !?? у меня такое ощущение что неправильно, если всатвил...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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