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

Перегрузка - C++

Восстановить пароль Регистрация
 
максим)
 Аватар для максим)
2 / 2 / 0
Регистрация: 02.10.2010
Сообщений: 36
06.05.2012, 19:05     Перегрузка #1
Лабораторная с STL , вопрос : выдает 2 ошибки, но я ведь перегрузил в классе комплекс и вывод и не равно... не могу понять в чем дело, подскажите пожалуйста...
[C++ Error] LABA4_2.cpp(51): E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'Complex'
[C++ Error] LABA4_2.cpp(107): E2093 'operator!=' not implemented in type 'Complex' for arguments of the same type

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <set.h>
#include <queue.h>
class Complex {
  public: int im,re;
  Complex(int x, int y){
    re=x;
    im=y;
  }
  Complex(){ re=0; im=0;}
  friend istream& operator>>(istream& in, Complex& com){
    int x,y;
    cout<<" Enter real part :";
    in>>x;
    cout<<" Enter imagine part :";
    in>>y;
    com=Complex(x,y);
    cout<<endl;
  return in;
  }
  friend ostream& operator <<(ostream& out, Complex& com){
    out<<" our complex number is :"<<endl;
    out<<com.re<<" + "<<"i*"<<com.im<<endl;
    return out;
  }
  int operator ==(const Complex obj)
           {int res=0;
            if ((im==obj.im)&& (re==obj.re))
             {res=1;
             }
            return res;
           }
  int operator !=(const Complex obj)
           {int res=0;
            if ((im!=obj.im)&& (re!=obj.re))
             {res=1;
             }
            return res;
           }
  };
//-----functions------------//
void print_multiset(multiset<Complex>& m){
  multiset<Complex>:: iterator p=m.begin();
  while (p!=m.end()){
    cout<<(*p);
    p++;
  }
  cout<<endl;
}
void print_queue(queue<Complex>& q){
   queue<Complex> tmp;
   tmp=q;
   while(!tmp.empty()) {cout<<tmp.front()<<" ";  tmp.pop();}
}
//-------------------------------------------------------------------
int main(){
 int size, size2;
 Complex tmp;
 multiset<Complex>  a;
 cout<<" Enter size of multiset :";
 cin>>size;
 multiset<Complex>:: iterator x=a.begin();
 for(int i=0; i<size; i++){
   cin>>tmp;
   a.insert(tmp);
 }
cout<<" Our multiset :"<<endl;
print_multiset(a);
cout<<" Enter how many elements delete :";
cin>>size;
x=a.begin();
for(int i=0; i<size; i++){
 a.erase(x);
 x++;
}
print_multiset(a);
cout<<" Enter how many elements add :"<<endl;
cin>>size;
x=a.begin();
 for(int i=0; i<size; i++){
   cin>>tmp;
   a.insert(tmp);
 }
cout<<endl<<" Our multiset :"<<endl;
 print_multiset(a);
//**********queue**************/
queue<Complex> b,tmp_b;
cout<<" Enter size of queue :";
cin>>size2;
for(int i=0; i<size2; i++){
  cin>>tmp;
  b.push(tmp);
}
cout<<endl<<" our queue :"<<endl;
print_queue(b);
cout<<" Enter element, to delete after  :";
cin>>tmp;
cout<<endl<<" Enter how many elements delete :";
cin>>size;
x=a.begin();
 while ((*x)!=tmp)
 x++;
x++;
multiset<Complex>::iterator it;
it=x;
for(int i=0; i<size; i++)
  it++;
a.erase(x,it);
tmp_b=b;
for(int i=0; i<b.size(); i++){
a.insert(tmp_b.front());
tmp_b.pop();
}
cout<<" Our multiset :"<<endl;
print_multiset(a);
getch();
return 0;
}
Добавлено через 13 минут
когда в шаблоне стандартные типы данных- int, char и т.д. , то все работает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 19:05     Перегрузка
Посмотрите здесь:

C++ C++ Перегрузка
C++ Перегрузка
C++ перегрузка []
перегрузка [] C++
C++ Перегрузка *
C++ Перегрузка ~
C++ перегрузка
Перегрузка + C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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