Форум программистов, компьютерный форум 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++
Как бы это поле реализовать? При передаче экземпляра значению любой функции, или оператору и при записи в экземпляр возвращаемого значения функции, или оператора, в том числе, в составе другого объекта, в том числе, объекта-массива значение UID должно копироваться, в остальных случаях требуется генеринг нового уникального значения при каждом создании нового экземпляра. Требется гарантировать,...
C++ Реализовать АТД “Очередь” на основе усовершенствованного циклического массива
Прошу помочь с написанием решения для данной задачи: Создайте реализацию АТД “очередь” на основе усовершенствованного циклического массива, который автоматически увеличивает размер вдвое при переполнении, подобно вектору. Все остальные характеристики циклического массива должны быть сохранены. Продемонстрируйте работоспособность решения при помощи тестовой программы. Заранее благодарен.
C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт http://www.cyberforum.ru/cpp-beginners/thread1118740.html
Нужно открыть бинарный файл и закодировать следующим образом. Взять 7 байт. Первый бит каждого байта переместить в 8 байт. То есть, например: 10101010 01010110 00001100 00011000 00011000 00000111 00011100 Нужно превратить в: 0101010
C++ Записать программу, выводящую изображенную фигуру Пользователь вводит некий символ. Записать программу, выводящую изображенную на рис. 2.10 фигуру, где вместо символа «*» должен быть символ, введенный пользователем. ***** ** * ** ***** подробнее

Показать сообщение отдельно
DrOffset
7090 / 4231 / 950
Регистрация: 30.01.2014
Сообщений: 7,006
14.03.2014, 13:52
Цитата Сообщение от taras atavin Посмотреть сообщение
Это с какой стати? Если оператор-член существует, то он должен полностью поддерживать весь синтаксис, возможность которого декларирована в стандарте, а его семантика должна соответствовать назначению класса и самому оператору.
Семантику оператора определяет программист. Если ты, например, откроешь библиотеку boost::spirit, то увидишь, что там куча операторов переопределены так, чтобы было удобно писать грамматику, то есть они не соответствуют своим встроенным аналогам. Сделано это для удобства и для конкретной задачи.
Однако есть так называемый принцип наименьшего удивления. Когда другой программист смотрит твой код, то у него как можно меньше должны лезть глаза на лоб Поэтому в типовых задачах правильнее определять семантику операторов так же, как она определена для встроенных типов. В стандарте нет строгих требований к возвращаемому значению оператора=. Однако есть примеры, которые можно брать за основу при решении типовых задач. Но строгим это правило нельзя назвать все равно. Исключения из него могут быть вполне.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru