#include <iostream>
#include <cmath>
using namespace std;
struct real_number {
double value;
};
struct complex_number {
double real_part;
double imag_part;
};
class class_real {
private:
real_number num;
public:
class_real() {}
class_real(real_number num) {
this->num = num;
}
~class_real() {}
void num_out() {
cout << "Value: " << num.value << endl;
}
double get_value() { return num.value; }
void set_value(double value) { num.value = value; }
};
class class_complex : public class_real {
private:
double imag_part;
public:
class_complex(real_number num, double imag_part) : class_real(num) {
this->imag_part = imag_part;
}
double get_imag() { return this->imag_part; }
double get_module() {
return sqrt(get_value() * get_value() + imag_part * imag_part);
}
};
int main() {
real_number r;
r.value = 5.5;
class_real real_obj(r);
real_obj.num_out();
class_complex complex_obj(r, 3.2);
cout << "Real part: " << complex_obj.get_value() << endl;
cout << "Imag part: " << complex_obj.get_imag() << endl;
cout << "Module: " << complex_obj.get_module() << endl;
return 0;
}