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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

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

14.03.2014, 09:55. Просмотров 2495. Ответов 18
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
class TUID
{
 public:
 char Data[33];
 TUID ();
 operator ++ ();
};
C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]|
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 09:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]| (C++):

error: ISO C++ forbids declaration of 'Time' with no type - C++
#ifndef _TIMELL_H #define _TIMELL_H #include <iostream> #include <string> #include "Time.h" using namespace std; ...

Error: ISO C++ forbids declaration of "Link" with no type - C++
выдает кучу ошибок, три основные: sorted_list.h:8: error: ISO C++ forbids declaration of ‘Link’ with no type sorted_list.h:8: error:...

ISO C++ forbids declaration of with no type - C++
Здравстуйте! Недавно начал изучать С++. В коде возникла ошибка: Line 23| ISO C++ forbids declaration of 'roman' with no type. Подскажите,...

ISO C++ forbids declaration of 'c' with no type - C++
Компилятор выдает ошибку при выполнении данного кода, в чем ошибка? #include <iostream> using namespace std; template <typename...

ISO C++ forbids declaration of 'main' with no type - C++
Здравствуйте! Возникла ошибка в коде, никак не могу понять что где неправильно написал. Помогите кто может! Заранее благодарен! Задание...

C:\tsserver\Projects\cpp\codeblocks\MyComp\compiler\mmz\mmz. cpp|29|error: no match for 'operator=' in '* Item = * Source'| - C++
char **Source; TArray<std::string> *Item; ... *Item=*Source;

18
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 09:58 #2
Вы не указали тип возвращаемого значения функции operator++
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
14.03.2014, 09:58 #3
Цитата Сообщение от taras atavin Посмотреть сообщение
operator ++ ();
возвращать что-то должен
0
John Prick
805 / 738 / 146
Регистрация: 27.07.2012
Сообщений: 2,110
Завершенные тесты: 3
14.03.2014, 10:44 #4
Да не просто что-то, а TUID &
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
14.03.2014, 10:55 #5
Вернуть можно любой тип. Просто логично возвратить ссылку на TUID.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.03.2014, 11:15  [ТС] #6
А опрератор копирующего присваивания что должен возвращать? Тоже
C++
1
TUID&
, или
C++
1
TUID
?
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 11:18 #7
Да что угодно. Вопрос в том как вы будете использовать результат.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.03.2014, 11:26  [ТС] #8
Цитата Сообщение от Ilot Посмотреть сообщение
Да что угодно.
Ога. Возводящая в степень перегрузка оператора сложения тоже допустима. Я не спрашиваю, что проглотит компиялтор, я спрашиваю, как правильно. Так что ответы на тему приведения программы в состояние алкогольного опьянения попрошу держать при себе.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
Завершенные тесты: 1
14.03.2014, 11:30 #9
Цитата Сообщение от taras atavin Посмотреть сообщение
я спрашиваю, как правильно.
ссылку на *this (Мейерс. Эффективное использование C++)
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.03.2014, 11:33  [ТС] #10
То есть
C++
1
2
3
4
5
6
class TUID
{
...
 const TUID &operator = (TUID Original);
...
};
?
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
Завершенные тесты: 1
14.03.2014, 11:36 #11
taras atavin, сори ошибся, я подправил коммент

Добавлено через 53 секунды
Цитата Сообщение от taras atavin Посмотреть сообщение
C++
1
const TUID &operator = (TUID Original);
C++
1
TUID &operator = (const TUID & Original);
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
14.03.2014, 11:36 #12
Что должен - зависит о ваших потребностей.
Что может - может много чего. Зависит от стандарта.
1
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 11:55 #13
taras atavin, еще раз повторюсь, что правильно зависит от вас. Хрен его знает для чего предназначен ваш класс и что ОЗНАЧАЮТ ваши операции с ним. Вполне может быть, что ваш класс не должен вести себя вот таким образом:
C++
1
2
TUID a, b, c;
a = b = c;
И причин для этого может быть множество.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.03.2014, 11:58  [ТС] #14
Цитата Сообщение от Ilot Посмотреть сообщение
В полне может быть, что ваш класс не должен вести себя вот таким образом:
TUID a, b, c;
a = b = c;
. Это с какой стати? Если оператор-член существует, то он должен полностью поддерживать весь синтаксис, возможность которого декларирована в стандарте, а его семантика должна соответствовать назначению класса и самому оператору.
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
14.03.2014, 12:01 #15
Цитата Сообщение от taras atavin Посмотреть сообщение
, возможность которого декларирована в стандарте
А вы уверены, что тип возвращаемого значения оператора = описан в стандарте?
0
14.03.2014, 12:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2014, 12:01
Привет! Вот еще темы с ответами:

C:\Projects\mmz\Compile\CompileAMD64\mmzCompileAMD64\TProjec t.cpp|74|error: declaration of 'std::ofstream File' shadows - C++
error: declaration of 'std::ofstream File' shadows a parameter| std::ofstream File;

Ошибка: forbids declaration of 'magic' with no type expected ';' before '.' token - C++
пишет "forbids declaration of 'magic' with no type expected ';' before '.' token" не могу найти где ? #include <iostream> #include...

ISO C++ forbids. error - C++
#ifndef CPYRAMID_H #define CPYRAMID_H class cPoint3d { public: cPoint3d() : x_(0.0),y_(0.0),z_(0.0) {}; ...

C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|1 5|error: 'InitApplication' was not declared in this scope| - C++
//================================================================================================= #include "IDE.hpp"...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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