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

c++ создать класс complex для работы с комплексными числами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выдаёт ошибку http://www.cyberforum.ru/cpp-beginners/thread1011457.html
// 777.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { return 0; }
C++ Сборщик системной информации в Windows 8.1 люди, помогите написать программу которая будет работать под windows 8.1 и выводить информацию о процессоре, памяти и.т.д. Что вообще использовать при ее создании? http://www.cyberforum.ru/cpp-beginners/thread1011452.html
C++ Удалить из массива все одинаковые элементы, оставив их первые вхождения
Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. Первые вхождения это как?
Прокоминтируйте строки задачи C++
Всем привет, я тут пытаюсь освоить классы, у книге которой я пользуюсь приведен пример, но я его не совсем понимаю, пркоминтируйте все строчки пожалуйста. Ниже код задачи. #include <iostream>...
C++ Реализация Китайской теоремы об остатках http://www.cyberforum.ru/cpp-beginners/thread1011445.html
Задача программы - найти X, исходя из трёх сравнений. Код я написал, но никак не пойму, почему X принимает отрицательное, да и неправильное значение. Проверьте, пожалуйста, если кому не лень) ...
C++ Геттеры создают объекты Пытаюсь из класса вытащить поле map class AutoShop { map<int, Manager> mapManagers; map<int, Client> mapClients; map<int, AutoConfiguration> mapAutoConfigurations; template <class T>... подробнее

Показать сообщение отдельно
stima
487 / 339 / 39
Регистрация: 22.03.2011
Сообщений: 1,084
Завершенные тесты: 2
18.11.2013, 23:39
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
127
128
#ifndef __COMPLEX_H__
#define __COMPLEX_H__
 
#include <iostream>
 
template <typename T>
class Complex 
{
    template <typename U>
    friend std::istream& operator>> (std::istream&, Complex<U>&);
 
public:
    explicit Complex(const T& re, const T& im);
    explicit Complex(const Complex& other);
 
    Complex& operator=(const Complex& other);
 
    T real() const { return _re; }
    T imaginary() const { return _im; }
 
    Complex conjugate() const { return Complex(_re, -_im); }
 
    Complex& operator+= (const Complex& other);
    Complex& operator-= (const Complex& other);
    Complex& operator*= (const Complex& other);
    Complex& operator/= (const Complex& other);
 
    Complex operator+ (const Complex& other);
    Complex operator- (const Complex& other);
    Complex operator* (const Complex& other);
    Complex operator/ (const Complex& other);
 
private:
    T _re;
    T _im;
};
 
template <typename T>
inline Complex<T>::Complex(const T& re, const T& im)
    : _re(re), _im(im) 
{
}
 
template <typename T>
inline Complex<T>::Complex(const Complex& other)
    : _re(other._re), _im(other._im)
{
}
 
template <typename T>
Complex<T>& Complex<T>::operator=(const Complex<T>& other)
{
    if (&other == this)
        return;
    
    _re = other._re;
    _im = other._im;    
 
    return *this;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator+= (const Complex<T>& other)
{
    _re += other._re;
    _im += other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator-= (const Complex<T>& other)
{
    _re -= other._re;
    _im -= other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator*= (const Complex<T>& other)
{
    _re = _re * other._re - _im * other._im;
    _im = _im * other._re + _re * other._im;
}
 
template <typename T>
inline Complex<T>& Complex<T>::operator/= (const Complex<T>& other)
{
    _re = (_re * other._re - _im * other._im) / 
        (other._re * other._re + other._im * other._im);
    _im = (_im * other._re - _re * other._im) /
        (other._re * other._re + other._im * other._im);
}
 
template <typename T>
inline Complex<T> Complex<T>::operator+ (const Complex<T>& other)
{
    return Complex<T>(*this) += other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator- (const Complex<T>& other)
{
    return Complex<T>(*this) -= other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator* (const Complex<T>& other)
{
    return Complex<T>(*this) *= other;
}
 
template <typename T>
inline Complex<T> Complex<T>::operator/ (const Complex<T>& other)
{
    return Complex<T>(*this) /= other;
}
 
template <typename T>
std::istream& operator>> (std::istream& in, Complex<T>& c)
{
    return in >> c._re >> c._im;
}
 
template <typename T>
std::ostream& operator<< (std::ostream& out, const Complex<T>& c)
{
    return out << c.real() << " " << c.imaginary();
}
 
#endif //__COMPLEX_H__
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru