Здесь я пытаюсь реализовать класс для комплексных чисел, используя книги и Интернет. Вот код:
#include <iostream>
#include <ostream>
using namespace std;
class Complex{
private:
float re,im;
public:
Complex(float x,float y){
re=x;
im=y;
}
float Re() const{
re;
}
float Im() const {
return im;
}
Complex& operator*=(const Complex& rhs){
float t=Re();
re = Re()*rhs.Re()-Im()*rhs.Im();
im = t*rhs.Im()+Im()*rhs.Re();
return *this;
}
};
ostream& operator<<(ostream& t,const Complex& c){
t << c.Re() << " " << c.Im();
return t;
}
int main(){
Complex s(3.45,23.12);
return 0;
}
Он компилируется нормально, но я не могу найти способ вывести на экран действительные и мнимые части числа?
#include <iostream>
// ...
Complex s(3.45,23.12);
std::cout << s;
См. этот ответ ,почему я считаю использование пространства имен std;
плохой идеей.
Кроме того, я полагаю, что реализация класса для комплексных чисел — это упражнение? Потому что в стандартной библиотеке он уже есть.
См. заголовок
, который реализует std::complex
... который вы можете использовать, если только вы не хотите реализовать это в качестве упражнения.
Вот ссылка на заголовочный файл GCC; все основные операции довольно просто реализованы.
Что касается печати на экране, что не так? Ваш оператор<<
выглядит нормально.