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

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

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

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

26.01.2012, 12:14. Просмотров 273. Ответов 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++ operator =
C++ Два разных массива записать последовательно в третий
Два разных элемента C++
C++ operator
C++ operator=
C++ В матрице выбрать n элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной
C++ Даны четыре разных числа. Найти среди них два наибольших
C++ Разнести данные и методы в два разных класса
C++ Как вывести два массива разных сортировок?
Как записать два разных класса в массив? C++
Даны четыре разных числа. Найти среди них два наибольших C++
C++ Operator +

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

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

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

Не по теме:

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

Yandex
Объявления
26.01.2012, 12:23     Два разных operator[]
Ответ Создать тему
Опции темы

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