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

Перегрузка операции инкремента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование. Виртуальные функции http://www.cyberforum.ru/cpp-beginners/thread633220.html
Всем привет. Недавно изучил раздел , который в названии. Вы могли бы дать задачку по выше указанной теме над которой надо хорошо подумать?
C++ Проблемма с вложенными классами Собственно, код программы. Компилятору не нравятся строки №41 и 47. Можете подсказать, в чем может быть причина? Компилятор gcc 4.5 //Задание 6.cpp //База данных сотрудников #include <iostream> using namespace std; /////////////////// http://www.cyberforum.ru/cpp-beginners/thread633215.html
C++ Вектор типа Класс
Как правильно работать с вектором тип которого класс, как правильно вносить и считывать данные вектора? #include <iostream> #include <vector> using namespace std; class Name { public: string name;
Unknown Publisher. как убрать C++
Когда я создам программу... Windows-кий UAC выдает это : Security warning: Publisher could no be verified. Are you sure you want to run this software ? ... как это убрать, где надо подписаться ? ... что нужно сделать чтоб Windows на чужом компе этого не выдавал ? Спасибо !
C++ Программа для DOS http://www.cyberforum.ru/cpp-beginners/thread633166.html
Кто подскажет как сделать простенку программу для ддос ,что бы в ней можно было в писать порт какой досить ,Ip и кол запросов .и что бы она была закрытой что бы не можно было что то изменить ,когда её включаешь она начинает досить . спасибо
C++ Чтение слов из файла Здравствуйте. Ломаю голову над тем как получить интересующие меня слово из файла и и заменить на другое, вот я читаю текст таким вот способом. Буду весьма благодарен за помощь #include <iostream> #include <string> #include <fstream> #include <iterator> using namespace std; подробнее

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

Перегрузка операции инкремента - C++

05.08.2012, 13:31. Просмотров 1230. Ответов 6
Метки (Все метки)

Как известно, постинкремент возвращает r-value, а преинкремент - l-value. То есть:

C++
1
2
++(++x); // допустимо
(x++)++; // ошибка компиляции
Как грамотно реализовать это для своего класса? Допустим перегружаю постинкремент так:

C++
1
2
3
4
5
6
7
8
SimpleClass operator ++(int)
{
    SimpleClass temp(*this);
 
    m_val++;  
        
    return temp;
}
Но после этого подобный вызов (x++)++; будет синтаксически правильным (хотя по понятным причинам к исходному объекту два инкремента не будет применено). Как сделать недопустимым такой вызов? Возвращать из функции const SimpleClass?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru