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

Создать класс комплексных чисел, перегрузить операторы -= и *= - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать класс Triad (тройка чисел) http://www.cyberforum.ru/cpp-beginners/thread1148567.html
Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный класс Triangle с полями-сторонами. Определить методы вычисления углов и площади...
C++ Не работает strcat в QtCreator Всем привет. Написал класс для работы со строками в Визуал студио(в ней перегруженный оператор + конкатенирует строки) в QtCreator оператор + нивкакую не хочет перегружаться, а точнее не объединяет... http://www.cyberforum.ru/cpp-beginners/thread1148562.html
C++ Найти количество букв в файле
Привет всем программистам.У меня проблема с решением задачи,прошу вашей помощи.Дана задача: Дан файл one.txt,содержащий текст.Написать программу,которая посчитает и выведет на экран количество букв...
Графика на С++ C++
Доброго времени суток, программисты. Имею такой вопрос. Работаю в Visual C++ 2013, подключил <Windows.h> для работы с графикой, как теперь нарисовать окружность, прямые? Сколько не искал, нашёл...
C++ Непонятка с float http://www.cyberforum.ru/cpp-beginners/thread1148547.html
float s = (123 * 100 / 360000); cout << fixed << setprecision(3) << s; По идее, в консоли должно вывести "0,034", но видимо с++ не разделяет эту идею. Пробовал и в отладчике переменную смотреть и...
C++ Поиск букв в тексте Разработать программу, которая вводит текст и букву и определяет слово (слова), содержащее наибольшее количество указанных букв. (заранее премного благодарен) подробнее

Показать сообщение отдельно
IrineK
Заблокирован
15.04.2014, 11:11
С вашей функцией все нормально. Просто в первом действии вы переопределяете действительную часть, а потом используете уже новое значение для подсчета мнимой части.

(Моя функция работает так же. Но ее нужно объявлять как friend.)


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
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
class Complex 
{   double re, im; 
 
public:
 
    Complex(): re(0), im(0) {}
    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 operator -= (Complex &c) 
    {   re = re - c.re;
        im = im - c.im;
        return *this;
    }
  
    
    Complex operator *= (Complex &c) 
    {   double temp = re*c.re - im*c.im;
        im = re*c.im + im*c.re;
        re = temp;
        return *this;
    }
  
    friend ostream &operator << (ostream &, const Complex &);
    friend istream &operator >> (istream &, const Complex &);
 
};
 
ostream &operator << (ostream &out, const Complex &c)
{   out << c.re;
    if (c.im > 0)
        out << "+";
    out << c.im << "i";
 
    return out;
}
 
istream &operator >> (istream &in, const Complex &c)
{   in >> c.re >> c.im;
    return in;
}
 
 
int main()
{
    Complex value1(4, 8);
    Complex value2(9, -3);
 
    value1 -= value2;
    cout << value1 << endl;
 
    value1 *= value2;
 
    cout << value1;
 
    cin.get();
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru