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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Имена для констант работающих с WebAPI http://www.cyberforum.ru/cpp-beginners/thread435476.html
Добрый день. Подскажите пожалуйста, какие имена лучше всего дать для констант хранящих названия REST API веб сервиса. К примеру есть такой апи "http://myhost.com/mobile/doLogin". часть...
C++ как удалять несколько символов сразу из строк? как удалять несколько символов сразу из строк? к примеру: Удалить часть символьной строки, заключенной в скобки (вместе со скобками). http://www.cyberforum.ru/cpp-beginners/thread435469.html
Visual Stdio 2008 c MSDN C++
Сколько надо памяти на диске "С" что бы установить Visual Stdio 2008 c MSDN, с учетом того что Visual Stdio 2008 будет на диске "Д". ТО есть сколько памяти нужно на диске "С" для ее компонентов и...
C++ Инкремент указателя на указатель
Добрый день!!! Ребят, подскажите пожалуста, как выполнить инкремент указателя на указатель. Программа аварийно завершается. Я так понимаю, что некорректно выполняю инкремент, т.к. в отладчике...
C++ как вернуть объект из ф-и, если, возможно, объекта не существует? http://www.cyberforum.ru/cpp-beginners/thread435430.html
Пример: TTo4ka TForm1::GetPoint(const short &X,const short &Y) { short Nom = p_MassivTo4ek; if (Nom>0) //значит есть точка { return p_To4ka; } TTo4ka T; return T;
C++ Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали. Не могу решить задачу на С++ Вот условия: Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали. подробнее

Показать сообщение отдельно
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2

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

26.01.2012, 12:14. Просмотров 287. Ответов 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]; }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru