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

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

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

Перегрузка оператора, комплексные числа - C++

01.06.2014, 15:09. Просмотров 459. Ответов 3
Метки нет (Все метки)

Не могу понять что делаю не так, компилятор выдает ошибки. Но все они из за неправельной перегрузки операторов вывода << и >> . Компелятор у меня VS 12.

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
#include <iostream>
#include "stdafx.h"
 
 
using namespace std;
 
class Comp {
  private:
    float a;
    float b;
  public:
    Comp(float A, float B);
    friend Comp operator+(Comp& A, Comp& B);
    friend Comp operator-(Comp& A, Comp& B);
    friend Comp operator*(Comp& A, Comp& B);
    friend ostream& operator<<(ostream& out, Comp& C);
    friend istream& operator>>(istream& in, Comp& C);
    friend bool operator==(Comp& A, Comp& B);
    friend bool operator>(Comp& A, Comp& B);
    friend bool operator<(Comp& A, Comp& B);
//    friend Comp* operator+(Comp& A[N], Comp& B[N]);
//    friend void operator-=(Comp& A[N], Comp C);
};
 
Comp::Comp(float A=0, float B=0)
{
  a=A;
  b=B;
}
 
Comp operator+(Comp& A, Comp& B) 
{
  Comp res;
  res.a=A.a+B.a;
  res.b=A.b+B.b;
  return res;
}
 
Comp operator-(Comp& A, Comp& B) 
{
  Comp res;
  res.a=A.a-B.a;
  res.b=A.b-B.b;
  return res;
}
 
Comp operator*(Comp& A, Comp& B)
{
  Comp res;
  res.a=A.a*B.a-A.b*B.b;
  res.b=A.b*B.a+A.a*B.b;
  return res;
}
 
ostream& operator<<(ostream& out, Comp& C) 
{
  cout<<C.a<<"+"<<C.b<<"i";
}
 
istream& operator>>(istream& in, Comp& C) 
{
  cin>>C.a>>C.b;
}
 
bool operator==(Comp& A, Comp& B) 
{
  if((A.a==B.a)&&(A.b==B.b))
    return true;
  return false;
}
 
bool operator>(Comp& A, Comp& B)
 {
  if((A.a+A.b)>(B.a+B.b))
    return true;
  return false;
}
 
bool operator<(Comp& A, Comp& B) {
  if((A.a+A.b)<(B.b+B.a))
    return true;
  return false;
}
 
int main() {
  Comp a,b;
  cin>>a>>b;
  cout<<a<<endl;
  cout<<b<<endl;
  if(a>b) 
    cout<<"a>b"<<endl;
  else
    cout<<"a<b"<<endl;
  Comp res(1,1);
  res=a-b;
  cout<<res<<endl;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 15:09     Перегрузка оператора, комплексные числа
Посмотрите здесь:

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

Комплексные числа/перегрузка - C++
Чот уже вторую неделю бьюсь над кодом, а осилить не могу, подскажите #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; ...

C++ перегрузка операторов, комплексные числа - C++
Помогите разобраться в предоставленной программе.. Сама программа(не сначала..до этого всё вроде понятно): // Вспомогательная...

Перегрузка оператора умножения числа на матрицу - C++
Доброго дня суток. Хочу перегрузить оператор умножение числа на матрицу. Перегрузил сначала в классе вот так: matrix operator*(const...

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

Перегрузка оператора -> - C++
обясните пожалуйста как перегружать -&gt; и для чего это нужно

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
01.06.2014, 15:25     Перегрузка оператора, комплексные числа #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
ostream& operator<<(ostream& out, Comp& C) 
{
  cout<<C.a<<"+"<<C.b<<"i";
  return out;
}
 
istream& operator>>(istream& in, Comp& C) 
{
  cin>>C.a>>C.b;
  return in;
}
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
01.06.2014, 15:27     Перегрузка оператора, комплексные числа #3
Цитата Сообщение от jadmax Посмотреть сообщение
#include <iostream> #include "stdafx.h"
местами поменяй)
в operator<<>> нету return
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 15:27     Перегрузка оператора, комплексные числа
Еще ссылки по теме:

Перегрузка оператора + - C++
Доброго времени суток. Есть программа, создающая связный список, который содержит числа по возрастанию #include &lt;iostream&gt; enum...

Перегрузка оператора < - C++
Здравствуйте. Есть класс треугольник(Triangle), надо перегрузить оператор &lt; для объектов класса Triangle. Написал код, вроде ошибок нет, но...

Перегрузка оператора = - C++
Ещё раз всем привет! Недавно разместила у себя &quot;лайт-вершин&quot; своего вектора - int_array. И все дружно начали мне говорить, что у меня...

Перегрузка оператора = - C++
Скажи пожалуйста в каких случаях нужно перегружать оператор = ?

Перегрузка оператора - C++
Здравствуйте. Нужна помощь) Есть такой класс: class vect { public: float *items; vect() { items = new float; for(int...

Перегрузка оператора <= - C++
Основная задача данного фрагмента отсортировать массив структур по полю name в алфавитном порядке, используя добавление с бинарным поиском...


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

Или воспользуйтесь поиском по форуму:
jadmax
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 11
01.06.2014, 15:27  [ТС]     Перегрузка оператора, комплексные числа #4
Cпасибо
Yandex
Объявления
01.06.2014, 15:27     Перегрузка оператора, комплексные числа
Ответ Создать тему
Опции темы

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