Ja bym to tak napisał dałem kilka rozwiązań których możesz nie zrozumieć wiec dałem je w komentarzach i napisałem prostsze pod spodem sory ze podzieliłem to na pliki, ale nie mogłem rozczytać nic z tego kodu
#include "pch.h"
#include <iostream>
int main()
{
float c, d;
cout << "Podaj liczbe: " << endl;
cin >> c;
cin >> d;
Tcomplex a(c, d);
cout << "Podaj liczbe: " << endl;
cin >> c;
cin >> d;
Tcomplex b(c, d);
a.suma(a, b);
a.iloczyn(a, b);
getchar();
getchar();
return 0;
};
#ifndef PCH_H
#define PCH_H
#include <iostream>
using namespace std;
void drukuj(float r, float t);
class Tcomplex
{
private:
float Re;
float Im;
public:
Tcomplex();
Tcomplex(double x, double y);
void suma(Tcomplex a, Tcomplex b);
//const Tcomplex operator+(const Tcomplex a) const; //lepiej przeciazyc operator i pisac pozniej obiekt = obiekt + obiekt
void iloczyn(Tcomplex a, Tcomplex b);
//const Tcomplex operator*(const Tcomplex a) const; // a tu byloby obiekt = obiekt * obiekt;
//friend ostream& operator<<(ostream& os, const Tcomplex& ob); // a to moze byc zamiast drukuj piszesz wtedy normalnie cout<<obiekt;
};
#endif //PCH_H
#include "pch.h"
void drukuj(float r, float t)
{
cout << r << " " << t << endl;
}
Tcomplex::Tcomplex()
// :Re(0), Im(0) //mozy byc tak jak usuniesz to co w nawiasie
{
Re = 0;
Im = 0;
}
Tcomplex::Tcomplex(double x, double y)
//:Re(x), Im(y) //lista inicjalizacyjna moze byc tak lub tak jak nawiasach
{
Re = x;
Im = y;
}
void Tcomplex::suma(Tcomplex a, Tcomplex b) //tu powinny byc przeciazone operatory
{
*this = Tcomplex(a.Re + b.Re, a.Im + b.Im);
}
//const Tcomplex Tcomplex::operator+(const Tcomplex a) const
//{
// return Tcomplex(Re + a.Re, Im + a.Im);
//}
void Tcomplex::iloczyn(Tcomplex a, Tcomplex b) //tu tak samo
{
*this = Tcomplex(a.Re * b.Re - a.Im * b.Im, a.Re * b.Im + a.Im * b.Re);
}
//const Tcomplex Tcomplex::operator*(const Tcomplex a) const
//{
// return Tcomplex(Re*a.Re, Im*a.Im);
//}
//ostream& operator<<(ostream& os, const Tcomplex& ob)
//{
// os << ob.Re << " " << ob.Im;
// return os;
//}