Kod: Zaznacz cały
complexType complexType::operator!() const
{
double modulus;
modulus = sqrt(realPart*realPart+imaginaryPart*imaginaryPart);
return modulus;
}
plik z funkcją main ma postać:
Kod: Zaznacz cały
#include "stdafx.h"
#include <iostream>
#include "complex_numbers.h"
using namespace std;
int main()
{
complexType number1(2,30);
cout<<!number1;
cout<<endl;
system("PAUSE");
return 0;
}
output w konsolce po prawidłowej kompilacji ma postać
Co oczywiście jest prawdą , ale to 0i wygląda strasznie niezgrabnie. Ma ktoś pomysł na to jak je usunąć, z możliwie najmniejszą ingerencją w kod ?30.0666 0i
prawdopodobnie problem leży w przeciążeniu operatora <<
Kod: Zaznacz cały
ostream& operator<<(ostream& osObject , const complexType& complex)
{
osObject<<complex.realPart<<" ";
osObject<<complex.imaginaryPart;
osObject<<"i";
return osObject;
}
dokonałem przeróbki w przeciążeniu <<
Kod: Zaznacz cały
if(complex.imaginaryPart != 0)
{
osObject<<complex.imaginaryPart;
osObject<<"i";
}