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

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

Войти
Регистрация
Восстановить пароль
 
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 20
#1

Ошибка перегрузки оператора - C++

14.01.2016, 16:19. Просмотров 246. Ответов 9
Метки нет (Все метки)

Здравствуйте уважаемые программисты,
при созданиии проэкта возникает ошибка
In function 'int main()':
154 10 [Error] no 'operator++(int)' declared for postfix '++' [-fpermissive]
155 10 [Error] no 'operator--(int)' declared for postfix '--' [-fpermissive]

Выложить весь код програмы немогу, слишком длинная. Можете посмотреть здесь http://pastebin.com/6gpayY5u
Хочу сказать чо перезагрузку операторов я сделал
C++
1
2
3
4
5
6
 73 vokzal operator ++(){addVokzal();return *this;}
 74 vokzal operator --(){deleteVokzal();return *this;}
 75 friend istream &operator >>(istream &in, vokzal &z);
 76 friend ostream &operator <<(ostream &out, vokzal &z);
 77 friend ifstream &operator >>(ifstream &fin, vokzal &z);
 78 friend ofstream &operator <<(ofstream &fout, vokzal&z);
Но при использовании этого выходит ошибка
C++
1
2
154  case 4:a++;break;// a.addVokzal(); добавление записи в БД
155  case 5:a--;break;//a.deleteVokzal(); удаление записи из БД
Когда я использую функции a.addVokzal(); a.deleteVokzal();
Программа крашится
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2016, 16:19     Ошибка перегрузки оператора
Посмотрите здесь:

Ошибка из книги оператора перегрузки - C++
// Листинг 10.10. // Возвращение безымянного временного объекта #include &lt;string&gt; #include &lt;iostream&gt; // для объекта cout using...

Ошибка в алгоритме перегрузки оператора присваивания - C++
Добрый вечер. Пишу методы для класса по своему заданию. Столкнулся с проблемой перегрузки оператора присваивания для метода поиска. Привожу...

Целесообразность перегрузки оператора - C++
Изначально имелся такой вот метод (пусть будет методом класса &quot;A&quot;): //класс &quot;A&quot;, константная версия метода const Order &amp;operator...

Особенонсти перегрузки оператора запятая - C++
Препод на защите прошлой лабы задал вопрос - чем отличается перегрузка оператора запятая от других... Перерыл кучу статей, пишут только,...

Friend-функции перегрузки оператора - C++
Всем доброго времени суток =) У меня есть следующий код заголовочного файла: enum month {jan = 1, feb, mar, apr, may, jun, jul, aug, sep,...

Вопрос по поводу перегрузки оператора + - C++
Всем привет.Подскажите как можно перегрузить оператор + в моем классе? И что лучше вернуть из перегруженной операции +=? Объект или...

Аналог перегрузки оператора индексирования (operator []) - C++
Как по-другому(то есть в виде обычной функции или как то ещё) можно записать перегрузку оператора индексирования? Например в моём случае:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
14.01.2016, 16:35     Ошибка перегрузки оператора #2
saphira777, ну вы и не перегружаете постфикс операторы ++ и -- только префикс

для перегрузки постфикс оператора:

C++
1
2
3
4
5
6
vokzal operator++(int unused)
{
    vokzal result = *this;
    addVokzal();
    return result;
}
gru74ik
Модератор
Эксперт CЭксперт С++
3974 / 1721 / 192
Регистрация: 20.02.2013
Сообщений: 4,820
Записей в блоге: 21
14.01.2016, 16:41     Ошибка перегрузки оператора #3
Цитата Сообщение от saphira777 Посмотреть сообщение
перезагрузку операторов
Перегрузку, а не "перезагрузку".
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 20
14.01.2016, 17:44  [ТС]     Ошибка перегрузки оператора #4
Добавлено через 35 секунд
Цитата Сообщение от ThePlague Посмотреть сообщение
для перегрузки постфикс оператора:
Я исправил, но к сожалению програма крашит
http://saveimg.ru/show-image.php?id=...d5ca112cfa93d7
Kerry_Jr
Модератор
Эксперт PHP
2162 / 1958 / 685
Регистрация: 14.05.2014
Сообщений: 5,734
Записей в блоге: 1
Завершенные тесты: 5
14.01.2016, 18:05     Ошибка перегрузки оператора #5
Цитата Сообщение от saphira777 Посмотреть сообщение
Когда я использую функции a.addVokzal(); a.deleteVokzal();
Программа крашится
так, может, выложите код этих методов?
SuperKir
103 / 103 / 58
Регистрация: 10.03.2015
Сообщений: 444
14.01.2016, 18:17     Ошибка перегрузки оператора #6
ThePlague, Замудрил)

C++
1
2
3
4
vokzal operator++(int)
{
    ++*this;
}
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
14.01.2016, 18:42     Ошибка перегрузки оператора #7
SuperKir,
1. для наглядности...
2. перегрузку префикса сотрут и что делать патом?

лучше на две строчки больше зато стабильнее
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 20
14.01.2016, 18:45  [ТС]     Ошибка перегрузки оператора #8
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
так, может, выложите код этих методов?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void vokzal::addVokzal()//добавление новой записи в БД
{VOKZAL t,*k;
int i;
k=new VOKZAL[n+1];  //выделение динамической памяти(последняя запись пуста)
if(k==NULL){cout<<"\nNo memory\n";getch(); return;};
cout<<"\nPynkt otpravleniya: ";cin>>t.otpr;
  cout<<"Pynkt naznacheniya: ";cin>>t.nazn;
  cout<<"Nomer poezda: ";cin>>t.nomer;
  cout<<"Chasi i minyti otpravleniya(vvodit' cherez probel): ";cin>>t.t.h; cin>>t.t.min;
  cout<<"Familiya passagira: ";cin>>t.f.fam;
  cout<<"Iniziali: ";cin>>t.f.iniz;
  cout<<"Tip vagona: ";cin>>t.tip;
  cout<<"Cena bileta: ";cin>>t.cost;
  cout<<endl;
for(i=0; i<n; i++)
    k[i]=px[i];
k[n]=t;
n++;
delete[]px;
px=k;
outputVokzal();//вывод БД на экран
cout<<"\nStroka yspeshno dobavlena";getch();}
 
void vokzal::deleteVokzal()//удаление записи
{int i,j;
char ch;
VOKZAL *k;
j=vuibor();
cout<<"Ydalit (Y/N)?: ";cin>>ch;
if(ch!='y') return;
if(ch=='y'){k=new VOKZAL[n-1];
        for(i=0; i<j; i++)
        k[i]=px[i];
        for(i=j+1; i<n; i++)
        k[i-1]=px[i];
        delete[]px;
        px=k;}
n--;
outputVokzal();//вывод БД на экран
cout<<"\nStroka yspeshno ydalena"; getch();}
Вот программа http://pastebin.com/6gpayY5u
SuperKir
14.01.2016, 18:51
  #9

Не по теме:

ThePlague, я обычно оба делаю, поэтому да, со вторым пунктом согласен

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2016, 19:58     Ошибка перегрузки оператора
Еще ссылки по теме:

По поводу потока и перегрузки оператора вставки в классе - C++
#include &lt;iostream&gt; using namespace std; class three_d { public: int x, y, z; three_d(int a, int b, int c) { x=a; y=b; z=c; } ...

Выполнить объединение двух строк с помощью перегрузки оператора (*) - C++
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class String { char *str; int...

Написать функцию перегрузки оператора инкремента для увеличения переменной типа enum class - C++
Доброго времени суток. Есть перечисление. enum class Month { jan = 1, feb, mar, apr, may, jun, jul, aug, sep, nov, dec }; ...

Open Watcom нет перегрузки для оператора ввода для типа std::string - C++
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается

Утечка при перегрузки оператора "+" - C++
Делаю велосипед под названием andString (string) andString.h class andString { char *sTring; unsigned int nLenght; ...


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

Или воспользуйтесь поиском по форуму:
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 20
15.01.2016, 19:58  [ТС]     Ошибка перегрузки оператора #10
Помогите исправить краш программы
Yandex
Объявления
15.01.2016, 19:58     Ошибка перегрузки оператора
Ответ Создать тему
Опции темы

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