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

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

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

перегрузка умножения - C++

29.05.2014, 14:24. Просмотров 320. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
MyComplex operator* (MyComplex x, MyComplex y)
{
 double Re1, Im1, Re2, Im2;
 x.ReAndIm(Re1, Im1);
 y.ReAndIm(Re2, Im2);
 Re1=Re1*Re2-Im1*Im2;
 Im1=Re1*Im2+Re2*Im1;
 x.modANDarg(Re1,Im1);
 return x;
}
вот функция перегрузки, если умножить константу на комплексное число, то все работает, где и как происходит преобразование константы в комплексное число
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 14:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка умножения (C++):

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

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

Перегрузка операции умножения - C++
Есть класс с системой англ. длины (т.е футы и дюймы). Нужно число float * Distance. В 40 строке ошибка: Не пойму в чём проблема....

Перегрузка оператора умножения - C++
Здравствуйте. Пишу реализацию действий с матрицами. Возникла проблема. Вот перегрузка умножения для матрицы на число: Matrix...

Перегрузка оператора умножения - C++
Доброго времени суток, прошу помощи с перегрузкой оператора *. Есть задача, где необходимо создать шаблон класса, в котором можно...

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

3
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
29.05.2014, 16:17 #2
Наверное в конструкторе класса MyComplex.
0
nmcf
5532 / 4842 / 1640
Регистрация: 14.04.2014
Сообщений: 19,644
29.05.2014, 16:22 #3
Ты не ту функцию показываешь. Она для умножения двух MyComplex.
0
Floron
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 12
29.05.2014, 19:49  [ТС] #4
C++ (Qt)
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
class MyComplex
{   
    double mod, arg;
 
    public:
    void ReAndIm(double& Re, double& Im)//Поиск действительной и мнимой части через модуль и аргумент
    {
        Re = mod*cos(arg);      //действительная часть
        Im = mod*sin(arg);      //мнимая часть
    }
 
    void modANDarg(double x, double y)//Поиск модуля и аргумента через действительную и мнимую часть
    {
        mod = sqrt(x*x+y*y);
        arg = tan(x/y);
    }
 
    MyComplex ()
    {
        mod=arg=0;
    }
    MyComplex (float a, float b) 
    { 
        mod = a, arg = b;
    }
    MyComplex (float a ) 
    {
        mod = a, arg = 0;
    }
    
    friend MyComplex cos1 (MyComplex z);
    friend ostream& operator<< (ostream& f, MyComplex& a);
    friend istream& operator>> (istream& f, MyComplex& a);
    friend MyComplex operator* (MyComplex x, MyComplex y);
    //friend MyComplex operator* (int x, MyComplex y);
    friend MyComplex operator+ (MyComplex x, MyComplex y);
};
 
 
istream& operator>> (istream& f, MyComplex& z)
{
    cout<<"Введите значение комплексного числа ";
    cout<<endl<<"Модуль: ";
    f>>z.mod;
    cout<<"Аргумент: ";
    f>>z.arg;
    return f;
}
 
ostream& operator<< (ostream& f, MyComplex& z)
{
    f<<"<"<<z.mod<<","<<z.arg<<">"<<endl;
    return f;
}
 
MyComplex cos1 (MyComplex z)
{
    double Re, Im;
    z.ReAndIm(Re,Im);
    Re=cos(Re)*cosh(Im);
    Im=-sin(Re)*sinh(Im);
    z.modANDarg(Re,Im);
    return z;
}
 
MyComplex operator* (MyComplex x, MyComplex y)
{
double Re1, Im1, Re2, Im2;
 x.ReAndIm(Re1, Im1);
 y.ReAndIm(Re2, Im2);
 Re1=Re1*Re2-Im1*Im2;
 Im1=Re1*Im2+Re2*Im1;
 x.modANDarg(Re1,Im1);
 return x;
}
 
/*MyComplex operator*(int x, MyComplex y)
{
double Re2, Im2;
 y.ReAndIm(Re2, Im2);
 Re2=x*Re2;
 Im2=x*Im2;
 y.modANDarg(Re2,Im2);
 return y;
}*/
 
MyComplex operator+ (MyComplex x, MyComplex y)
{
    double a, b, s, m;
    x.ReAndIm(a,b);
    y.ReAndIm(s,m);
    a=a+s;
    b=b+m;
    x.modANDarg(a,b);
    return x;
}
 
MyComplex schet_MyComplex(MyComplex& z)
{
    return z*z+cos1(2*z);
}
0
29.05.2014, 19:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 19:49
Привет! Вот еще темы с ответами:

Перегрузка операторов сложения и умножения - C++
По условию задачи мне необходимо получить сумму и произведение двух матриц с помощью перегрузки операторов сложения и умножения...

Перегрузка операторов умножения и присваивания - C++
Вечер добрый! Возникла проблема с перегрузкой операторов: dQuaternion dQuaternion :: operator*(dQuaternion&amp; QuatP) { dQuaternion...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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