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

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

Восстановить пароль Регистрация
 
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 19
14.01.2016, 16:19     Ошибка перегрузки оператора #1
Здравствуйте уважаемые программисты,
при созданиии проэкта возникает ошибка
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++ Утечка при перегрузки оператора "+"
Вопрос по поводу перегрузки оператора + C++
C++ Friend-функции перегрузки оператора
Ошибка в алгоритме перегрузки оператора присваивания C++
По поводу потока и перегрузки оператора вставки в классе C++
C++ Ошибка из книги оператора перегрузки
Аналог перегрузки оператора индексирования (operator []) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
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
Модератор
 Аватар для gru74ik
3496 / 1505 / 181
Регистрация: 20.02.2013
Сообщений: 4,352
Записей в блоге: 21
14.01.2016, 16:41     Ошибка перегрузки оператора #3
Цитата Сообщение от saphira777 Посмотреть сообщение
перезагрузку операторов
Перегрузку, а не "перезагрузку".
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 19
14.01.2016, 17:44  [ТС]     Ошибка перегрузки оператора #4
Добавлено через 35 секунд
Цитата Сообщение от ThePlague Посмотреть сообщение
для перегрузки постфикс оператора:
Я исправил, но к сожалению програма крашит
http://saveimg.ru/show-image.php?id=...d5ca112cfa93d7
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1933 / 1729 / 604
Регистрация: 14.05.2014
Сообщений: 5,015
Записей в блоге: 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
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
14.01.2016, 18:42     Ошибка перегрузки оператора #7
SuperKir,
1. для наглядности...
2. перегрузку префикса сотрут и что делать патом?

лучше на две строчки больше зато стабильнее
saphira777
0 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 19
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++
Выполнить объединение двух строк с помощью перегрузки оператора (*) C++
Особенонсти перегрузки оператора запятая C++
Open Watcom нет перегрузки для оператора ввода для типа std::string C++
C++ Целесообразность перегрузки оператора

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

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

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