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

ошибки "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Бинарные файлы http://www.cyberforum.ru/cpp-beginners/thread761421.html
Товарищи! такая задача: нужно в бинарный файл передавать данные разных типов (к примеру int, char, long double итд) но не используя структуры или классы, то есть на прямую кидать туда. Как сделать, чтоб потом к ним доступ иметь, допустим отредактировать или удалить какое-то значение? нужно использовать другой файл для истории всех операций с бинарным файлом или есть еще какой-нить способ? ...
C++ Вычислить количество элементов массива, равных 0 В массиве, состоящем из n вещественных чисел, необходимо вычислить:- количество элементов массива, равных 0;- сумму элементов массива, расположенных после минимального элемента. http://www.cyberforum.ru/cpp-beginners/thread761418.html
Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6 C++
Доброго времени суток ! Помогите решить задачу ! Нужно написать в цикле с предисловием следующее : Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.
C++ 4. Найти сумму К членов последовательности: 3, 7, 11, 15,… Вычислить сумму членов последовательности 1, 4, 7, 10, …, не превосходящих числа К
надо консольное приложение , без рандомайза функций и процедур в делфи
C++ Почему у меня не работает программа? http://www.cyberforum.ru/cpp-beginners/thread761389.html
блин что тут не так? #include <iostream> #include <math.h> using namespace std; const int n=5,m=6; int main() { int i,j; int a; int k,sum;
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза Помогите. Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза. подробнее

Показать сообщение отдельно
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59
14.01.2013, 15:46     ошибки "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
заголовочный файл



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
#include <iostream>
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
class Complex // класс компелексных чисел
{
   double re, im; // целая и мнимая части
   
// создаем конструкторы   
public:
   
   Complex() {};
   
   Complex (double r) // конструктор по умолчанию
   {
      re = r; 
      im = 0;
   }
   
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r; 
      im = i;
   } 
   
   Complex (Complex &c) // конструктор копирования
   {
      re = c.re; 
      im = c.im;
   }
   
   ~Complex() {}
   
   float abs() // Модуль комплексного числа
   {
      return sqrt(re * re - im * im);
   }     
 
   void print(Complex &c)
   {
       if(c.im>0) printf("%f + %f i\n",c.re,c.im);
       else printf("%f  %f i\n",c.re,c.im);
 
   }
 
 
   Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
 
   Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
   Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
   {
      Complex temp;
 
      temp.re = re - c.re;
      temp.im = im - c.re;
    
      return temp;
   }
 
   Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
   {
      Complex temp;
 
      temp.re = re*c.re;
      temp.im = re*c.im;
 
      return temp;
   }
 
    
 
   Complex Complex::operator / (Complex &c) // перегрузка оператора деления
   {
      Complex temp;
 
      double r = c.re * c.re + c.im * c.im;
      temp.re = (re * c.re + im * c.im) / r;
      temp.re = (im * c.re - re * c.im) / r;
 
      return temp;
   }   
 
   friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
   friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, Complex &c)
{
   if (c.im>0)
    
    out << "" << c.re << " + "<<c.im<<" i" <<"\n";
   else out << "" << c.re << " "<<c.im<<" i" <<"\n";
   
   return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
   in >> c.re >> c.im;
   
   return in;
}
файл исходного кода

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
#include "complex.h"
#include "iostream"
using namespace std;
 
int main()
{
    Complex u(5,2); 
    Complex v(3,-3);
    Complex x1(5);
    Complex x2(2.3);
    Complex x3(3);
    Complex x4(1);
    Complex x5(1.5);
    Complex x6(-5,2);
    
    cout << u << " " << v << endl;
 
    // вывод числа двумя функциями
    u.print(u);
    cout<<u<<endl;
    
    cout << x6 << endl; 
    cout << x4 - u << endl; 
    cout << u + v << endl;
    
    cout << u - v << endl;
    
    cout << u * v << endl;
    
    cout << x1*u+x2*v << endl;   //5u + 2.3v
     
    cout << (x3+u*v)/(u+(x4-v)) << endl;   //(3+uv)/(u+(x4-v))
 
    cout << x4/(u+x5*v) << endl;   //(u+1.5v)-1
    
    u = v;
    
    cout << u << " = " << v << endl;
    
   int i;
    cin>>i;
 
cout << "true  && false: " <<  ( u && v )   << endl;
cout << "true  || false: " << ( u || v )   << endl;
cout << "!true: " << r = ( ! u ) << endl<< "!false: "<<  ( ! v ) << endl;
        return 0;
}
я пытаюсь вычислить логические значения выражений, но выдаются ошибки

Код
1>c:\users\1\documents\visual studio 2010\projects\орпа\орпа\dfgbhnjk.cpp(43): error C2676: бинарный "&&": "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
1>c:\users\1\documents\visual studio 2010\projects\орпа\орпа\dfgbhnjk.cpp(44): error C2676: бинарный "||": "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
1>c:\users\1\documents\visual studio 2010\projects\орпа\орпа\dfgbhnjk.cpp(45): error C2065: r: необъявленный идентификатор
1>c:\users\1\documents\visual studio 2010\projects\орпа\орпа\dfgbhnjk.cpp(45): error C2675: унарный "!": "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
1>c:\users\1\documents\visual studio 2010\projects\орпа\орпа\dfgbhnjk.cpp(45): error C2675: унарный "!": "Complex" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru