#include <iostream>
#include <cstring>
using namespace std;
class zespolona
{
double rzeczyw;
double urojon;
string nazwa;
public:
zespolona(double r)
{
rzeczyw = r;
urojon = 0;
}
zespolona(string nn)
{
rzeczyw = 2;
urojon = 0;
nazwa = nn;
}
zespolona(double r, double i,string nn = "aa") : rzeczyw(r), urojon(i), nazwa(nn)
{
}
friend zespolona dodaj(zespolona a, zespolona b,zespolona c);
void wypisz()
{
cout << rzeczyw << ", " << urojon << " : " << nazwa << endl;
}
};
zespolona dodaj(zespolona a, zespolona b,zespolona c)
{
zespolona suma(0,0,"");
suma.rzeczyw = a.rzeczyw + b.rzeczyw + c.rzeczyw;
suma.urojon = a.urojon + b.urojon + c.urojon;
suma.nazwa = c.nazwa;
return suma;
}
int main()
{
zespolona k(0,0,"");
k = dodaj(3.8,4,"ostatni");
k.wypisz();
return 0;
}
Występuję błąd przy linijce
k = dodaj(3.8,4,"ostatni");
. Chodzi o to, że w konstruktorze z trzema argumentami, argument typu string występuje jako trzeci i dlatego jest błąd przy kompilacji ?