![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.11.2016
Сообщений: 110
|
![]()
В работе необходимо дополнить класс реализованный операторными функциями, используя перегрузку операторов. Реализовать перегрузку трёх операторов:присваивание,больше, умножение
Complex.h #ifndef COMPLEX_H #define COMPLEX_H #include <iostream> class Сomplex { private: int *real_part; int *imaginary_part; public: Сomplex (); ~Сomplex (); void set_real_part (const int r); void set_imaginary_part (const int i); int get_real_part () const; int get_imaginary_part () const; void add (const Сomplex &test_1, const Сomplex &test_2); void sub (const Сomplex &test_1, const Сomplex &test_2); void mul (const Сomplex &test_1, const Сomplex &test_2); void div (const Сomplex &test_1, const Сomplex &test_2); }; #endif main.cpp: #include "Complex.h" int main() { setlocale(LC_ALL, "Rus"); int a = 0; Сomplex test_1; std::cout << "Введите действительную часть первого числа:"; std::cin >> a; test_1.set_real_part (a); std::cout << "Введите мнимую часть первого числа:"; std::cin >> a; test_1.set_imaginary_part (a); Сomplex test_2; std::cout << "Введите действительную часть второго числа:"; std::cin >> a; test_2.set_real_part(a); std::cout << "Введите мнимую часть второго числа:"; std::cin >> a; test_2.set_imaginary_part(a); Сomplex test_3; test_3.add(test_1, test_2); if (test_3.get_imaginary_part() >= 0) std::cout << "Cумма = " << test_3.get_real_part() << " + " << test_3.get_imaginary_part() << " i" << std::endl; else std::cout << "Cумма = " << test_3.get_real_part() << " " << test_3.get_imaginary_part() << " i" << std::endl; test_3.sub(test_1, test_2); if (test_3.get_imaginary_part() >= 0) std::cout << "Разность = " << test_3.get_real_part() << " + " << test_3.get_imaginary_part() << " i" << std::endl; else std::cout << "Разность = " << test_3.get_real_part() << " " << test_3.get_imaginary_part() << " i" << std::endl; test_3.mul(test_1, test_2); if (test_3.get_imaginary_part() >= 0) std::cout << "Произведение = " << test_3.get_real_part() << " + " << test_3.get_imaginary_part() << " i" << std::endl; else std::cout << "Произведение = " << test_3.get_real_part() << " " << test_3.get_imaginary_part() << " i" << std::endl; test_2.set_real_part(1); test_2.set_imaginary_part(4); system("pause"); return 0; } Complex.cpp: #include "Complex.h" Сomplex::Сomplex() // конструктор { real_part = new int; imaginary_part = new int; } Сomplex::~Сomplex() // деструктор { delete real_part; delete imaginary_part; } void Сomplex::set_real_part(const int r) { *real_part = r; } void Сomplex::set_imaginary_part(const int i) { *imaginary_part = i; } int Сomplex::get_real_part() const { return *real_part; } int Сomplex::get_imaginary_part() const { return *imaginary_part; } void Сomplex::add(const Сomplex &test_1, const Сomplex &test_2) { *real_part = test_1.get_real_part() + test_2.get_real_part(); *imaginary_part = test_1.get_imaginary_part() + test_2.get_imaginary_part(); } void Сomplex::sub(const Сomplex &test_1, const Сomplex &test_2) { *real_part = test_1.get_real_part() - test_2.get_real_part(); *imaginary_part = test_1.get_imaginary_part() - test_2.get_imaginary_part(); } void Сomplex::mul(const Сomplex &test_1, const Сomplex &test_2) *real_part = test_1.get_real_part() * test_2.get_real_part() + test_1.get_imaginary_part() * test_2.get_imaginary_part(); *imaginary_part = test_1.get_real_part() * test_2.get_imaginary_part() + test_1.get_imaginary_part() * test_2.get_real_part(); } |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]()
и? (10 и?)
|
![]() |
![]() |
![]() |
#3 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
1) Там везде в слове Complex стоит русская "С"
2) При умножении ошибка в формуле: должно быть re = re1*re2 - im1*im2, а стоит плюс |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перегрузка операторов | сега21 | Помощь студентам | 0 | 20.05.2012 12:38 |
Перегрузка операторов C++ | applegrub | Общие вопросы C/C++ | 4 | 20.12.2011 01:04 |
Перегрузка операторов | stas135642 | Общие вопросы C/C++ | 0 | 13.11.2011 23:09 |
перегрузка операторов C++ | Kingdom_Reborn | Помощь студентам | 0 | 29.09.2011 20:58 |
Перегрузка операторов, Организация перегрузки операторов | chagin_yav | Помощь студентам | 2 | 12.05.2008 09:15 |