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

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

Войти
Регистрация
Восстановить пароль
 
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
#1

Два разных operator[] - C++

26.01.2012, 12:14. Просмотров 279. Ответов 1
Метки нет (Все метки)

Зачем нужны в классе два перегруженых оператора operator[] и почему первый без const? Ето пример из книги Прата
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Student
{
    typedef std::valarray<double> ArrayDb;
    std::string name;
    ArrayDb scores;
public:
    Student() : name("Null Student"), scores() {}
    Student(const std::string &s) : name(s), scores() {}
    explicit Student(int n) : name("Nully"), scores(n) {}
    Student(const std::string &s, int n) : name(s), scores(n) {}
    Student(const std::string &s, const ArrayDb &a) : name(s), scores(a) {}
    Student(const char *str, const double *pd, int n) : name(str), scores(pd, n) {}
    ~Student() {}
    double & operator[](int i) {return scores[i]; }
    double operator[](int i) const {return scores[i]; }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 12:14     Два разных operator[]
Посмотрите здесь:

Два разных элемента - C++
Дан целочисленный двумерный массив А размера n*m. Известно, что среди его элементов два и только два равны между собой. Напечатать их...

Как вывести два массива разных сортировок? - C++
Необходимо сделать одну программу , где нужно вывести сначала неотсортированный массив, затем один массив отсортированный вставками, и один...

Как записать два разных класса в массив? - C++
допустим есть vector&lt;class_a&gt; cont_a; vector&lt;class_b&gt; cont_b; // тут мы их заполнили допустим по 800 элементов в каждом векторе.и...

Разнести данные и методы в два разных класса - C++
Товарищи скорректируйте в какую сторону двигаться. Есть задача создать библиотеку из двух классов. Один содержит поля с характеристиками...

Два разных массива записать последовательно в третий - C++
Пожалуйста помогите! Ввод-два массива разной длинны.Записать в третий-сначала идут элементы первого затем второго массива. Зарание...

Даны четыре разных числа. Найти среди них два наибольших - C++
Задача: Даны четыре разных числа. Найти среди них два наибольших. С применением if. Помогите написать код, пожалуйста

Даны четыре разных числа. Найти среди них два наибольших - C++
Даны четыре разных числа. Найти среди них два наибольших. Чет я не понимаю как это все написать через if кто может написать ? как...

operator = - C++
Посмотрите, пожалуйста, ато я саафсем запарилась... %) Проблема такая: есть класс, у которого есть функция присваивания: class...

Operator* - C++
в этой программе мне надо умножить два числа a &amp; b ??? допустим в ob(2,5) перемножить 2 &amp; 5 #include&lt;iostream&gt; #include&lt;vector&gt; ...

Operator*=(); - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace::std; class Distance //Класс английских длин { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
26.01.2012, 12:23     Два разных operator[] #2
yuron_477, константная и не константная версии. Чтобы можно было применять оператор индексации для константных объектов только для чтения (ведь нелогично запрещать читать значение по индексу из объекта, который не позволяет себя изменять).

Добавлено через 1 минуту

Не по теме:

А ведь в книге это наверняка ранее описывалось (или описывается в пределах пары следующих страниц).

Ответ Создать тему
Опции темы

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