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

C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]| - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать контейнер класса с методами включения и удаления строки, очистки текста, подсчета количества символов http://www.cyberforum.ru/cpp-beginners/thread1118839.html
Помогите создать контейнер класса который является абстракцией текста с методами включения и удаления строки из текста, очистки текста, подсчета количества символов и вывода текста на экран. Раньше...
C++ Может ли объект-член, или объект-элемент достучаться к содержащему его? Предположим, class A { ... }; class B { .... A a; ... }; http://www.cyberforum.ru/cpp-beginners/thread1118829.html
Класс, каждый экземпляр которого имеет поле UID с гарантированно уникальным значением C++
Как бы это поле реализовать? При передаче экземпляра значению любой функции, или оператору и при записи в экземпляр возвращаемого значения функции, или оператора, в том числе, в составе другого...
C++ Реализовать АТД “Очередь” на основе усовершенствованного циклического массива
Прошу помочь с написанием решения для данной задачи: Создайте реализацию АТД “очередь” на основе усовершенствованного циклического массива, который автоматически увеличивает размер вдвое при...
C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт http://www.cyberforum.ru/cpp-beginners/thread1118740.html
Нужно открыть бинарный файл и закодировать следующим образом. Взять 7 байт. Первый бит каждого байта переместить в 8 байт. То есть, например: 10101010 01010110 00001100 00011000 00011000...
C++ Записать программу, выводящую изображенную фигуру Пользователь вводит некий символ. Записать программу, выводящую изображенную на рис. 2.10 фигуру, где вместо символа «*» должен быть символ, введенный пользователем. ***** ** * ** ***** подробнее

Показать сообщение отдельно
DrOffset
7134 / 4275 / 963
Регистрация: 30.01.2014
Сообщений: 7,064
14.03.2014, 17:28
Цитата Сообщение от taras atavin Посмотреть сообщение
А превращать его в сокращение оператора плюс равно значит запутывать того, кто будет этот класс юзать.
Ну именно об этом я и написал. Про принцип наименьшего удивления.

Однако я хотел бы отметить, что догматичность в суждениях в этом вопросе тоже неуместна. Есть конкретная ситуация и мы должны, как профессионалы ее оценить. Если сложение на самом деле выполняет деление, это конечно плохо. Но если сложение выполняет операцию склеивания строк? Это сделано во многих классах строк и уже не кажется экзотикой, но если слишком догматично подойти к вопросу, то окажется что и этого нельзя было делать. Однако практика показывает, что это не так. Или более характерный пример, оператор сдвига << в iostream, который на самом деле ввод в поток... Тоже, ведь если слишком строго рассуждать, можно додуматься до того, что это плохо. Но ведь используют и уже почти все привыкли.
Ну а в том же boost::spirit, например оператор звездочка совсем не разыменование, унарные плюсы и минусы скорее похожи на подобные в регулярных выражениях, чем на обычные и т.п. Но это не плохо, потому что в рамках задачи - это оправдано, и если разобраться в этом есть логика, просто работают другие ассоциации.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru