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

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

Войти
Регистрация
Восстановить пароль
 
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
#1

Перегрузка оператора [] - C++

01.07.2012, 13:33. Просмотров 607. Ответов 1
Метки нет (Все метки)

Возможно ли создать два перегруженных оператора индексации, чтобы один из них возвращал l-value, другой r-value? В этом примере в обоих случаях вызывается первый оператор, но мне нужно, чтобы при печати вызывался второй.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
const int size = 10;
 
class Array
{
public:
    int & operator [] (int index)
    {
        std::cout << "operator []\n";
        return arr[index];
    }
    
    int operator [] (int index) const
    {
        std::cout << "operator [] const\n";
        return arr[index];
    }
private:
    int arr[size];
};
 
int main()
{
    Array test;
 
    test[1] = 7;
     
    std::cout << test[1]; // как вызвать int []const ?
  
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 13:33     Перегрузка оператора []
Посмотрите здесь:

Перегрузка оператора + и = - C++
Здравствуйте! Возникла проблема при реализации кода перегрузки операторов. BigInt - это просто класс характеризующий огромные числа в...

Перегрузка оператора - C++
Доброго времени суток! Помогите, пожалуйста, с решением задачи: Описать класс множество целых чисел. Перегрузить следующую операцию: +...

Перегрузка оператора ~ - C++
Доброго времени суток! Помогите пожалуйста с решением задачи. Описать класс множество целых чисел. Перегрузить следующую операцию: ~...

Перегрузка оператора () - C++
Никак не могу разобраться с перерузкой оператора () и в литературе не могу найти доходчивое объяснение: Есть перегрузка оператора () Есть...

Перегрузка оператора ++ - C++
Написал префиксную перегрузку ++ Vremya &amp;Vremya::operator ++ () { int sec = getSec(*this); //перевод в секунды ...

Перегрузка оператора - C++
Имеется время, например 12:12:12 Перегрузка инкремента Time &amp;Time::operator ++ () { Next(); return *this; } ...

Перегрузка оператора << - C++
Добрый пень! подскажите как написать код для реалилизации следующего требования: SpecialPrint &lt;&lt; &quot;text&quot; &lt;&lt; 'a' &lt;&lt; 1; ...

Перегрузка оператора % - C++
Подскажите пожалуйста как перегрузить оператор % для матрицы! #include &quot;StdAfx.h&quot; #include &quot;statik.h&quot; #include &lt;iostream&gt; ...

Перегрузка оператора - - C++
В своём классе я перегрузил оператор -,но в функции,использующей вычитание возникает ошибка error C2678: бинарный &quot;-&quot;: не найден...

Перегрузка оператора == - C++
Есть шаблонный класс List (не имеющий перегруженных операторов) и есть шаблонный класс ListWithName, который наследует List и из своих...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
01.07.2012, 13:47     Перегрузка оператора [] #2
Const функции вызываются только если нет других не-const перегруженных функций, или если объект объявлен как const.
Ответ Создать тему
Опции темы

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