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

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

Войти
Регистрация
Восстановить пароль
 
Avgust
3 / 3 / 1
Регистрация: 03.11.2014
Сообщений: 80
#1

Перегрузить () для комплексных чисел - C++

02.03.2016, 17:46. Просмотров 174. Ответов 4
Метки нет (Все метки)

Всем привет! Помогите пожалуйста с перегрузкой () для комплексных чисел. Условие: d1(0)=d2, d1,d2 - комплексные числа. Действительная часть d1 стала равна действительной части d2. d1(1)=d2 - тоже самое с мнимой частью. Все остальные операторы уже перегрузил, помогите пожалуйста с этим)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2016, 17:46     Перегрузить () для комплексных чисел
Посмотрите здесь:
C++ Перегрузить функцию умножения(*) для комплексных чисел
C++ Перегрузить операторы "+" для комплексных чисел:
C++ Создать класс комплексных чисел, перегрузить операторы -= и *=
Перегрузить операции сравнения комплексных чисел и операции потокового вывода C++
Калькулятор для подсчёта комплексных чисел с++ C++
Класс для обработки комплексных чисел C++
Программа для расчета комплексных чисел C++
C++ Перегруженные функции для сложения вещественных чисел; для сложения комплексных чисел
Определить функцию для суммы комплексных чисел C++
Создать класс для реализации комплексных чисел C++
C++ Описать класс для обработки комплексных чисел
Составить описание класса для представления комплексных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6282 / 5885 / 1906
Регистрация: 18.12.2011
Сообщений: 15,099
Завершенные тесты: 1
02.03.2016, 18:52     Перегрузить () для комплексных чисел #2
C++
1
2
3
4
5
6
double& operator()(int k)
{
    if(k)
     return im;
   return re;
}
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
02.03.2016, 18:59     Перегрузить () для комплексных чисел #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
zss, Не покатит. Надо как-то так:
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
class complex
{
    double im, re;
public:
    class complexpart
    {
        complex ∁
        int i;
    public:
        complexpart(complex& comp, int i) : comp(comp), i(i) {}
        const complex& operator=(const complex r)
        {
            switch (i) {
            case 0:
                comp.re = r.re;
                break;
            case 1:
                comp.im = r.im;
            }
            return comp;
        }
    };
    complexpart operator()(int i) { return complexpart(*this, i); }
    complex(double re, double im) : re(re), im(im) {}
};
int main()
{
    complex d1(1, 1);
    complex d2(2, 2);
    d1(0) = d2;
    d1(1) = d2;
}
zss
Модератор
Эксперт С++
6282 / 5885 / 1906
Регистрация: 18.12.2011
Сообщений: 15,099
Завершенные тесты: 1
02.03.2016, 19:34     Перегрузить () для комплексных чисел #4
У Вас круглые скобки - это что-то вроде индексации.
Соответственно, они должны возвращать тип содержащихся в классе данных, а не класс.
Что я Вам и предложил.
Получится
C++
1
2
3
4
5
6
int main()
{
    complex d1(1, 1);
   d1(0) = 1.5; // присвоение действительной части
    d1(1) = -1.5 // присвоение мнимой части;
}
Avgust
3 / 3 / 1
Регистрация: 03.11.2014
Сообщений: 80
03.03.2016, 05:18  [ТС]     Перегрузить () для комплексных чисел #5
zss, по заданию слева должно стоять комплексное число и справа тоже комплексное число. Так как вы написали, я перегрузил операцию []

Добавлено через 40 секунд
avgoor, спасибо, именно то, что нужно!) Идея была такая же, но не знал как реализовать, теперь понял как можно делать, спасибо)
Yandex
Объявления
03.03.2016, 05:18     Перегрузить () для комплексных чисел
Ответ Создать тему
Опции темы

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