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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 129, средняя оценка - 4.77
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
#1

Класс комплексных чисел - C++

15.01.2009, 16:12. Просмотров 17092. Ответов 19
Метки нет (Все метки)

Помогите пожалуйста реализовать (без использования <complex>) класс комплексных чисел с простейшими операциями и ВЫВЕСТИ результат на дисплей..еще не получается
Complex operator- (); bool operator== (Complex &); bool operator!= (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
   #include <iostream>
   #include <cmath>
   using namespace std;
 
class Complex
    {
    private:
        double real;    // Действительная часть
        double image;    // Мнимая часть
    public:
        Complex() {};    // Конструктор по умолчанию
        Complex(double r) { real = r; image = 0; } // Конструктор
        Complex(double r, double i) { real = r, image = i; }    // Конструктор
        ~Complex() {}    // Деструктор
        double abs()   // Модуль комплексного числа
            {
            return sqrt(real * real - image * image);
            }
 
        Complex operator+(Complex &);    // Перегрузка оператора сложения
        Complex operator-(Complex &);    // Перегрузка оператора вычитания
        Complex operator*(Complex &);    // Перегрузка оператора умножения
        Complex operator/(Complex &);    // Перегрузка оператора деления
                      Complex operator- ();
                      bool operator== (Complex &);
                      bool operator!= (Complex &);
        // Перегрузка функции-оператора << для вывода класса Complex
        friend ostream &operator<<(ostream &o, Complex &c);
 
        // Перегрузка функции-оператора >> для ввода класса Complex
        //friend istream &operator>>(istream &, Complex &);
    };
 
// Перегрузка +
Complex Complex::operator+(Complex &fp1)
    {
    fp1.real = real + fp1.real;
    fp1.image = image + fp1.image;
    return fp1;
    }
 
// Перегрузка -
Complex Complex::operator-(Complex &fp1)
    {
    fp1.real = real - fp1.real;
    fp1.image = image - fp1.image;
    return fp1;
    }
 
// Перегрузка *
Complex Complex::operator*(Complex &fp1)
    {
    double i, j;
    i = real * fp1.real - image * fp1.image; 
        return fp1;
    }
// Перегрузка /
Complex Complex::operator/(Complex &fp1)
    {
    double i, j;
    if ((fp1.real*fp1.real-fp1.image*fp1.image)!=0) 
        { 
        real=(real*fp1.real+image*fp1.image)/ 
        (fp1.real*fp1.real-fp1.image*fp1.image); 
 
        image=(fp1.real*image-real*fp1.image)/ 
        (fp1.real*fp1.real-fp1.image*fp1.image); 
}
        else cout<<"Деление на 0 невозможно" ;
}
       main ()
       {
         Complex a,b,c;
        ??????????????-как печатать комплексные числа??:wall:
       }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2009, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс комплексных чисел (C++):

Класс комплексных чисел - C++
Сейчас начал изучение классов. Придумал себе задачку: написать класс комплексных чисел. Пока планирую так: PRIVATE: - переменные: ...

Класс комплексных чисел - C++
Класс комплексных чисел, стандартные операции, перегрузка ввода-вывода. С вводом-выводом проблемы. Вроде всегда так писали, но сейчас...

Класс комплексных чисел - C++
Нужно создать программу (два класса) Класс комплексных чисел Базовый класс (мнимых чисел): Конструкторы: по умолчавнию, с параметрами...

Класс комплексных чисел - C++
Ребят, помогите пожалуйста написать класс комплексных чисел... Я плохо разбираюсь в объектно-ориентированном программировании, учусь,...

Класс Комплексных Чисел - C++
Здравствуйте, попробовал тут написать класс комплексных чисел, но пишет ошибку error: statement cannot resolve adress of overloaded...

Класс комплексных чисел - C++
Привет))) Пожалуйста, помогите мне создать эту программу!) Я буду вам благодарна) Разработать алгоритм и программу ввода с клавиатуры...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mulat
7 / 7 / 0
Регистрация: 09.01.2009
Сообщений: 41
15.01.2009, 22:59 #2
C++
1
2
3
4
5
6
7
8
9
10
11
Complex operator- (){
     real=-real;
     image=-image;
     return *this;
}
 
bool operator== (Complex & comp_num){
    if(real==comp_num.real && image==comp_num.image)
        return true;
    return false;
}
с оператором != сами разберётесь
и ещё 2 конструктора
C++
1
2
Complex(double r) { real = r; image = 0; } 
Complex(double r, double i) { real = r; image = i; }
можно объединить в один
C++
1
Complex(doubler r, double i=0){real=r; image=i;}
0
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
15.01.2009, 23:33 #3
Цитата Сообщение от hamlet-ss6 Посмотреть сообщение
ВЫВЕСТИ результат на дисплей..
так покатит
C++
1
2
3
4
5
6
7
8
9
10
11
12
friend ostream &operator<<(ostream &o, Complex &c)
{
     o<<c.real;
     return o;
}
//............................................
int main ()  
{  
    Complex a(10,10);
    cout<<a<<endl;
    return 0;
}
0
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
16.01.2009, 08:44 #4
а какое отношение проблема имеет к Linux?
0
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 15:08  [ТС] #5
ISergey,
Привет,спасибо ОГРОМНОЕ за советы!!!!я вот еще раз программу переписал-повнимательней,но почему она НЕ выполняет действия с комплексными числами??
Посмотри,пожалуйста!!
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
125
126
#include <iostream>
#include <сmath>
 
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);
} 
 
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)
{
out << "(" << c.re << ") + I (" << c.im << "\n";
 
return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
in >> c.re >> c.im;
 
return in;
}
 
int main()
{
Complex value1(5,2);
Complex value2(3,-3);
 
cout << value1 << " " << value2 << endl;
 
cout << value1 + value2 << endl;
 
cout << value1 - value2 << endl;
 
cout << value1 * value2 << endl;
 
cout << value1 / value2 << endl; 
 
value1 = value2;
 
cout << value1 << " = " << value2 << endl;
 
return 0;
}
Добавлено через 2 минуты 59 секунд
Mulat,
Привет,спасибо ОГРОМНОЕ за советы!!!!объясни пожалуйста,почему не печатает она результаты операций с числами???
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
125
126
#include <iostream>
#include <сmath>
 
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);
} 
 
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)
{
out << "(" << c.re << ") + I (" << c.im << "\n";
 
return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
in >> c.re >> c.im;
 
return in;
}
 
int main()
{
Complex value1(5,2);
Complex value2(3,-3);
 
cout << value1 << " " << value2 << endl;
 
cout << value1 + value2 << endl;
 
cout << value1 - value2 << endl;
 
cout << value1 * value2 << endl;
 
cout << value1 / value2 << endl; 
 
value1 = value2;
 
cout << value1 << " = " << value2 << endl;
 
return 0;
}
0
Mulat
7 / 7 / 0
Регистрация: 09.01.2009
Сообщений: 41
16.01.2009, 15:34 #6
добавьте
C++
1
using namespace std
вначале.
если не поможет- вот ссылка на реализацию http://www.dreamincode.net/code/snippet75.htm
0
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
16.01.2009, 16:15 #7
ostream &operator<<(ostream &out, complex &c)
ты хочешь сказать что она у тебя компилируется?? complex смаленькой буквы

Добавлено через 7 минут 28 секунд
value1 / value2
value1 - value2
это все у тебя не lvalue

значит ты не имеешь права по ссылке их передавать операторным функциям
так надо

friend ostream &operator<<(ostream &, Complex );
friend istream &operator>>(istream &, Complex );
0
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 17:11  [ТС] #8
Фенрир,
СПАСИБО ТЕБЕ ЗА ВСЁ-но смотри
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
125
126
#include <iostream>  
#include <сmath>  
 using namespace std;  
class сomplex // класс комплексных чисел  
{  
double re, im; // целая и мнимая части  
   
// создаем конструкторы   
public:  
   
сomplex() {};  
   
сomplex (double r) // конструктор по умолчанию  
{  
re = r;   
im = 0;  
}  
   
сomplex (double r, double i) // конструктор по умолчанию  
{  
re = r;   
im = i;  
}   
   
сomplex (сomplex &c) // конструктор копирования  
{  
re = c.re;   
im = c.im;  
}  
   
~сomplex() {}  
   
float abs() // Модуль комплексного числа  
{  
return sqrt(re * re - im * im);  
}   
   
сomplex & operator = (сomplex &c) // перегрузка оператора присваивания  
{  
re = c.re;  
im = c.im;  
   
return (*this);  
}  
   
сomplex сomplex::operator + (сomplex &c) // перегрузка оператора сложения  
{  
сomplex temp;  
   
temp.re = re + c.re;  
temp.im = im + c.re;  
   
return temp;  
}  
   
сomplex сomplex::operator - (сomplex &c) // перегрузка оператора вычитания  
{  
сomplex temp;  
   
temp.re = re - c.re;  
temp.im = im - c.re;  
   
return temp;  
}  
   
сomplex сomplex::operator * (сomplex &c) // перегрузка оператора умножения  
{  
сomplex temp;  
   
temp.re = re*c.re;  
temp.im = re*c.im;  
   
return temp;  
}  
   
сomplex сomplex::operator / (сomplex &c) // перегрузка оператора деления  
{  
сomplex 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 &, сomplex); // перегрузка оператора <<  
friend istream &operator>>(istream &, сomplex); // перегрузка оператора >>  
   
};  
   
ostream &operator<<(ostream &out, complex &c)  
{  
out << "(" << c.re << "," << c.im << ")";  
   
return out;  
}  
   
istream &operator>>(istream &in, сomplex &c)  
{  
in >> c.re >> c.im;  
   
return in;  
}  
   
int main()  
{  
сomplex value1(5,2);  
сomplex value2(3,-3);  
   
cout << value1 << " " << value2 << endl;  
   
cout << value1 + value2 << endl;  
   
cout << value1 - value2 << endl;  
   
cout << value1 * value2 << endl;  
   
cout << value1 / value2 << endl;   
   
value1 = value2;  
   
cout << value1 << " = " << value2 << endl;  
   
return 0;  
}
строка 94 так наверно должна выглядеть:out << "(" << c.re << "," << c.im << ")";
и попробуй ПОЖАЛУЙСТА у себя потестить прогу
Завтра утром мне сдавать этот ужас..с учётом твоих замечательных советов-всё равно не пашет..
0
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
16.01.2009, 17:13 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
ostream &operator<<(ostream &out, Complex c)
{
out << "(" << c.re << ") + I (" << c.im << "\n";
 
return out;
}
 
istream &operator>>(istream &in, Complex c)
{
in >> c.re >> c.im;
 
return in;
}
0
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 17:15  [ТС] #10
Mulat,
Спасибо за советы и реализацию!!!!!!!!но мне б класс этот долбанный реализовать,что с Фенриром обсуждаем..тут наверно в вводе-выводе класса ошибка..если ещё идеи есть-буду очень рад
0
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
16.01.2009, 17:16 #11
у меня компилится
0
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 17:25  [ТС] #12
Фенрир,
СПАСИБО!!!!!!!!!!значит при перегрузке строки 87и88 такие:
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
friend ostream &operator<<(ostream &, сomplex ); 
friend istream &operator>>(istream &, сomplex ); 
и с учетом последнего совета:
friend ostream &operator<<(ostream &, сomplex); // перегрузка оператора << 
friend istream &operator>>(istream &, сomplex); // перегрузка оператора >> 
 
}; 
 
ostream &operator<<(ostream &out, Complex c)   
{   
out << "(" << c.re << ") + I (" << c.im << "\n";   
  
return out;   
}   
  
istream &operator>>(istream &in, Complex c)   
{   
in >> c.re >> c.im;   
  
return in;   
} 
 
int main() 
{ 
сomplex value1(5,2); 
сomplex value2(3,-3); 
 
cout << value1 << " " << value2 << endl; 
 
cout << value1 + value2 << endl; 
 
cout << value1 - value2 << endl; 
 
cout << value1 * value2 << endl; 
 
cout << value1 / value2 << endl; 
 
value1 = value2; 
 
cout << value1 << " = " << value2 << endl; 
 
return 0; 
}
так теперь???
0
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
16.01.2009, 17:32 #13
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
125
126
#include <iostream.h>
#include <math.h>
   
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);  
}   
   
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)
{
out << "(" << c.re << ") + I (" << c.im << ")";
 
return out;
}
 
istream &operator>>(istream &in, Complex c)
{
in >> c.re >> c.im;
 
return in;
}
 
int main()  
{
Complex value1(5,2);  
Complex value2(3,-3);  
   
cout << value1 << " " << value2 << endl;
 
cout << value1 + value2 << endl;
 
cout << value1 - value2 << endl;  
 
cout << value1 * value2 << endl;
   
cout << value1 / value2 << endl;
 
value1 = value2;  
   
cout << value1 << " = " << value2 << endl;  
 getchar();
return 0;  
}
В Билдере у меня компилится....вместо math.h подключи cmath
1
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 18:04  [ТС] #14
Фенрир,
а в Линуксе компилятор вон что говорит
super.cpp:47: error: extra qualification ‘complex::’ on member ‘operator+’
super.cpp:57: error: extra qualification ‘complex::’ on member ‘operator-’
super.cpp:67: error: extra qualification ‘complex::’ on member ‘operator*’
super.cpp:77: error: extra qualification ‘complex::’ on member ‘operator/’
super.cpp:93: error: ‘Complex’ has not been declared
super.cpp: In function ‘std::ostream& operator<<(std::ostream&, int)’:
super.cpp:95: error: request for member ‘re’ in ‘c’, which is of non-class type ‘int’
super.cpp:95: error: request for member ‘im’ in ‘c’, which is of non-class type ‘int’
super.cpp: In function ‘int main()’:
super.cpp:114: error: no matching function for call to ‘complex::complex(complex)’
super.cpp:26: note: candidates are: complex::complex(complex&)
super.cpp:14: note: complex::complex(double)
super.cpp:114: error: initializing argument 2 of ‘std::ostream& operator<<(std::ostream&, complex)’
super.cpp:116: error: no matching function for call to ‘complex::complex(complex)’
super.cpp:26: note: candidates are: complex::complex(complex&)
super.cpp:14: note: complex::complex(double)
super.cpp:116: error: initializing argument 2 of ‘std::ostream& operator<<(std::ostream&, complex)’
super.cpp:118: error: no matching function for call to ‘complex::complex(complex)’
super.cpp:26: note: candidates are: complex::complex(complex&)
super.cpp:14: note: complex::complex(double)
super.cpp:118: error: initializing argument 2 of ‘std::ostream& operator<<(std::ostream&, complex)’
super.cpp:120: error: no matching function for call to ‘complex::complex(complex)’
super.cpp:26: note: candidates are: complex::complex(complex&)
super.cpp:14: note: complex::complex(double)
super.cpp:120: error: initializing argument 2 of ‘std::ostream& operator<<(std::ostream&, complex)
super.cpp-имя программы
0
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
23.01.2009, 19:32  [ТС] #15
Посмотрите пожалуста на операции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool operator == (complex &c) 
{ 
if (re==c.re && im==c.im)
return 1;
return 0; 
} 
 
bool operator != (complex &c) 
{ 
if (re!=c.re && im!=c.im)
return 0;
return 1; 
}
правильно ли они реализованы (в смысле логики)???особенно !=
СПАСИБО!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2009, 19:32
Привет! Вот еще темы с ответами:

Класс комплексных чисел(подправить) - C++
Помогите дописать в оераторе &quot;умножение&quot; умножение вещественного числа на комплексное,double на комплексное. Очень надо. Заранее спасибо ...

Написать класс комплексных чисел - C++
Недавно начал изучать C++ по самоучителю, пишу на Dev-C++ 4.9. Не могу разобраться с классами. Задача: написать класс комплексных чисел,...

Создать класс комплексных чисел - C++
Создать класс,объекты которого моделируют комплексные числа с перегрузкой необходимых операций.

Класс для обработки комплексных чисел - C++
Дана задача написать класс для обработки комплексных чисел(вывод на экран, модуль числа, действия: &quot;+,-,*,/&quot;. Готовые коды находил, но...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2009, 19:32
Ответ Создать тему
Опции темы

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