Obliczenia na liczbach zespolonych – operator * nie znaleziony

Obliczenia na liczbach zespolonych – operator * nie znaleziony
MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Piszę kod robiący obliczenia na liczbach zespolonych
jedyne co mi się udaje to stworzenie liczby przez konstruktor, natomiast coś takiego

Kopiuj
complex<double> mycomplex = 2.0 + 2.0*I;

wyrzuca error:

Kopiuj
żaden operator "*" nie pasuje do tych argumentów operacji

w internecie nie mogę nic znaleźć na ten temat,

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Czym jest I?

MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

podobno jest taka stała w bibliotece complex.h i odpowiada za jednostkę urojoną
jeśli jestem w błędzie to chodzi mi o znalezienie takiej zmiennej odpowiadającej za jednostkę urojoną żeby dało się ją podstawić w działaniach

edit
fragment z biblioteki complex

Kopiuj
#define _Complex_I  (0.0F +  1.0iF)
#define I _Complex_I
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

<complex> z C++ i <complex.h> z C99 to zupełnie różne i niekompatybilne rzeczy. I występuje jako magiczne makro w C, a w C++ nie ma go wcale.

MP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

to jak w takim razie operować na liczbach zespolonych

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

Używaj std::complex, zamiast szukać rozwiązań z C

Kopiuj
complex<double> I{0,1};
complex<double> mycomplex = 2.0 + 2.0*I;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.