С++ ООП . Очень Наследование .Виртуальные методы.

Создайте Базовый класс: ПАРА_ЧИСЕЛ(PAIR)
Первое число(first) - int
Второе число(second) - int
Определить методы изменения полей и операцию складывания пар(a, b) -(c, d) = (a - b, c - d)

Создайте наследный класс КОМПЛЕКСНОЕ_ЧИСЛО(COMPLEX), с полями Действительная_часть_числа и Мнимая_часть_числа. Определить операции умножения(a, b) * (c, d) = (a*c - b*d, a*d+b*c) и сложение(a, b) + (c, d) = (a+b, с+d)

nv5n4kp0ds5f nv5n4kp0ds5f    2   21.11.2021 03:14    1

Ответы
Teddy1bear Teddy1bear  21.11.2021 06:00

Не бейте, я не знаю, что я написал. Надеюсь, тебе это .

#include <iostream>

#include <vector>

using namespace std;

template<typename a, typename b>

class myPair {

public:

myPair(a first, b second) : first(first), second(second) {

}

myPair operator+(myPair a) {

 return myPair(first + a.first, second + a.second);

}

myPair operator-(myPair a) {

 return operator+(myPair(-a.first, -a.second));

}

a first;

b second;

};

class complex : myPair<int, int> {

public:

friend myPair;

complex(int real, int imaginary) : myPair(real, imaginary) {

 

}

int real() {

 return first;

}

int imaginary() {

 return second;

}

complex operator+(complex a) {

 return complex(myPair::operator+(a).first, myPair::operator+(a).second);

}

complex operator-(complex a) {

 return complex(myPair::operator-(a).first, myPair::operator-(a).second);

}

complex operator*(complex a) {

 return complex(real() * a.real(), imaginary() * a.imaginary());

}

};

int main() {

complex a(1, 2), b(10, 11);

cout << (a + b).real() << " " << (a + b).imaginary() << " " << (a - b).real() << " " << (a - b).imaginary() << " " << (a * b).real() << " " << (a * b).imaginary();

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика