complex.h文件
#ifndef _MINISTL_H_
#define _MINISTL_H_
#include<iostream>
#include<ostream>
using namespace std;
namespace miniSTL
{
class complex
{
friend ostream& operator<<(ostream& os,const complex& c);
public:
complex(int real,int image):real_(real),image_(image) {};
void print();
complex& operator=(const complex& c);
complex& operator+=(const complex& c);
complex& operator-=(const complex& c);
complex operator+(const complex& c);
complex operator-(const complex& c);
private:
int real_;
int image_;
};
/*friend*/ostream& operator<<(ostream& os,const complex& c)
{
os << c.real_<<'+'<<c.image_<<'i';
return os;
}
}
#endif /*_MINISTL_H_*/
complex.cpp文件
#include"complex.h"
/*complex*/
using namespace miniSTL;
void complex::print()
{
cout<<real_<<'+'<<image_<<'i'<<endl;
}
complex& complex::operator=(const complex& c)
{
this->real_ = c.real_;
this->image_=c.image_;
return *this;
}
complex& complex::operator+=(const complex& c)
{
this->real_ += c.real_;
this->image_+= c.image_;
return *this;
}
complex& complex::operator-=(const complex& c)
{
this->real_ -= c.real_;
this->image_-= c.image_;
return *this;
}
complex complex::operator+(const complex& c)
{
complex c1(this->real_,this->image_);
c1.real_+=c.real_;
c1.image_+=c.image_;
return c1;
}
complex complex::operator-(const complex& c)
{
complex c1(this->real_,this->image_);
c1.real_-=c.real_;
c1.image_-=c.image_;
return c1;
}