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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
07.07.2010, 15:50     Класс для работы с комплексными числами #1
ne kompeliruet :S
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef COMPLEX0_H_
#define COMPLEX0_H_
class Complex
{
    private:
        double a;
        double b;
    public:
        Complex() {};
        Complex(double aa, double bb);
        Complex operator+(Complex & c);
        Complex operator-(Complex & c);
        Complex operator*(Complex & c);
        friend Complex operator-(Complex & c);
};
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "complex0.h"
Complex::Complex(double aa, double bb)
{
    a=aa;
    b=bb;
}
Complex Complex::operator+(Complex & c)
{
    return Complex(a+c.a, b+c.b);
}
Complex Complex::operator-(Complex & c)
{
    return Complex(a-c.a, b-c.b);
}
Complex Complex::operator*(Complex & c)
{
    return Complex(a*c.a - b*c.b, a*c.b + b.c.a);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.07.2010, 15:52     Класс для работы с комплексными числами #2
friend Complex operator-(Complex & c)

Бинарный минус или унарный? Если бинарный то надо два параметра при друж. функции

Да и вот так таки лучше не писать...

Complex Complex::operator+(Complex & c)
{
return Complex(a+c.a, b+c.b);
}

Лучше я думаю

C++
1
2
3
4
5
6
7
Complex Complex::operator+(Complex & c)
{
Complex Temp;
Temp.a=a+c.a;
Temp.b=b+c.b;
return Temp;
}
Ну и везде аналогично...

+b.c.a); ВТФ? Мб b*c.a?
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
07.07.2010, 15:56     Класс для работы с комплексными числами #3
Цитата Сообщение от Lavroff Посмотреть сообщение
Да и вот так таки лучше не писать...
Complex Complex::operator+(Complex & c)
{
return Complex(a+c.a, b+c.b);
}
Lavroff, а чем твой вариант отличается, кроме большего количества кода?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.07.2010, 15:57     Класс для работы с комплексными числами #4
Хохол, Так понятнее все же. + b.c.a); довольно сильно отличается. На вкус и цвет фломастеры разные..
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
07.07.2010, 16:01     Класс для работы с комплексными числами #5
Для меня все же
C++
1
return Complex(a+c.a, b+c.b);
гораздо красивее и понятнее, чем
C++
1
2
3
4
Complex Temp;
Temp.a=a+c.a;
Temp.b=b+c.b;
return Temp;
Ну, разные так разные.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.07.2010, 16:01     Класс для работы с комплексными числами #6

Не по теме:

Хохол, Возможно. Но в реализации разницы никакой.

Ошибка у него тут одна. b.c.a вместо b*c.a
Yandex
Объявления
07.07.2010, 16:01     Класс для работы с комплексными числами
Ответ Создать тему
Опции темы

Текущее время: 01:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru