С++ ООП . Очень Наследование .Виртуальные методы.
Создайте Базовый класс: ПАРА_ЧИСЕЛ(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)
Не бейте, я не знаю, что я написал. Надеюсь, тебе это .
#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();
}