0 / 0 / 0
Регистрация: 16.04.2018
Сообщений: 4
1

Реализовать класс Pair (пара чисел); определить производный класс Complex (комплексное число)

31.08.2018, 20:43. Показов 8202. Ответов 2
Метки нет (Все метки)

Здравствуйте. Задали задание:

Создать класс Pair (пара чисел); определить метод перемножения полей и операцию сложения пар: (а, b) + (с, d) = (а + c, b + d). Определить производный класс Complex (комплексное число) с полями: действительная и мнимая части числа.
Определить методы умножения (a, b)*(с, d) = (ас - bd, ad + bc) и вычитания (а, b) - (с, d) = (а - c, b - d). Для демонстрации работы программы необходимо создать объект производного класса, задать все поля данного объекта и продемонстрировать использование всех доступных функций базового и производного классов, например, в консоли.

Не понял немного формулировки видимо, так как не понимаю что сделать можно. Мне сказано, что я должен задать только объект производного класса, но как я проверю, к примеру, операцию сложения пары?Ведь перегрузка для класса Pair, а не для производного класса Complex.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.08.2018, 20:43
Ответы с готовыми решениями:

Реализовать класс родительский класс "Пара чисел" и класс-наследник "Комплексное число"
Ткма работы создать класс pair (пара чисел); определить метод перемножения полей и операцию...

Создать класс Pair(пара чисел) и класс-наследник Fraction
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше...

Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел.
Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел....

Создать абстрактный класс Pair с виртуальными арифметическими операциями + производный класс Complex
Создать абстрактный базовый класс Pair с виртуальными арифметическими операциями (+-*/)....

2
шКодер самоучка
2171 / 1878 / 912
Регистрация: 09.10.2013
Сообщений: 4,125
Записей в блоге: 7
31.08.2018, 21:16 2
Лучший ответ Сообщение было отмечено Soldier17568 как решение

Решение

Soldier17568, если я правильно понял, то можно использовать что то вроде этого
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
#include <iostream>
using namespace std;
 
struct Base
{
    int a = 0;
    int b = 0;
    
    friend Base operator+(const Base& lsh, const Base& rsh);
 
protected:
    virtual Base plus(const Base& arg) const {
        Base tmp{*this};
        tmp.a += arg.a;
        tmp.b += arg.b;
        return tmp;
    }
};
 
Base operator+(const Base& lsh, const Base& rsh)
{
    return lsh.plus(rsh);
}
 
class Child: public Base
{};
 
int main() {
    Child ca, cb;
    ca.a = 1; ca.b = 2;
    cb.a = 4; cb.b = 3;
    auto cc = ca + cb;
    return 0;
}
1
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 467
31.08.2018, 22:10 3
Цитата Сообщение от Soldier17568 Посмотреть сообщение
Ведь перегрузка для класса Pair, а не для производного класса Complex.
Пусть Complex в конструкторе принимает 2 объекта Pair и выполняет с ними операции:
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
#include <iostream>
 
class Pair {
private:
int a,b;
public:
Pair (int a, int b){
this->a=a;
this->b=b;
}
Pair(){}
 
Pair operator +(Pair f){
  f.a+=this->a;
  f.b+=this->b;
  return f;
}
Pair operator = (Pair obj){
 this->a=obj.a;
  this->b=obj.b;
  return obj;
}
 
void show(){
  std::cout << a<< "\t"<<b;
}
 
};
class Complex : protected Pair {
  private: //можете здесь организовать массив для хранения входных данных, чтобы применять какие-либо операции к ним, но для простоты кода я этого делать не стал и операции (сложение и приравнение) выполняю в конструкторе
  Pair answer;
public:
Complex(Pair obj, Pair obj2){
answer=obj+obj2; //можете инициализировать массив объектов вместо операций
 
}
void show_answer (){
 answer.show();
}
};
int main(){
  Pair p(5, 2);
  Pair p2(9, 3);
  Complex o(p, p2);
  o.show_answer();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2018, 22:10
Помогаю со студенческими работами здесь

Определить класс Complex (комплексное число). Объявить методы для операция с комплексными числами
Помогите, пожалуйста!!Очень срочно!!! Определить класс Complex (комплексное число). Объявить...

Класс Pair (пара чисел), определить методы изменения полей и сравнения пар
на программе С++ BUILDER6 Создать класс Pair (пара чисел); определить методы изменения полей и...

Создать абстрактный класс Pair, на его основе реализовать классы Money и Complex-С++
Создать абстрактный класс Pair (пара значений) с виртуальными методами, реализующими арифметические...

Используя шаблоны и исключительные ситуации реализовать класс контейнер пара (pair)
Помогите, пожалуйста, реализовать. Используя шаблоны и исключительные ситуации реализовать класс...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru