
//.h#ifndef CPPSTUDY_DEMO7_1_COMPLEX_H#define CPPSTUDY_DEMO7_1_COMPLEX_H#include <iostream>using namespace std;class demo7_1_Complex {public: demo7_1_Complex(); //构造函数 实体创建的时候自动调用 demo7_1_Complex(double r, double i);//构造函数 virtual ~demo7_1_Complex(); //析构函数 实体销毁时候自动调用 demo7_1_Complex(const demo7_1_Complex &x); //拷贝构造函数 //get set double real() const { return _real; } void real(double d) { _real = d; } void image(double i) { _image = i; } double image() const { return _image; } //运算符重载 demo7_1_Complex operator+(const demo7_1_Complex &x); //+ demo7_1_Complex& operator=(const demo7_1_Complex &x); //= demo7_1_Complex &operator++(); //前置++ demo7_1_Complex operator++(int); //后置++//protected://friend friend ostream& operator<<(ostream& os, const demo7_1_Complex &x); friend istream& operator>>(istream& is, demo7_1_Complex &x);private: double _real; double _image;};#endif //CPPSTUDY_DEMO7_1_COMPLEX_H//.c#include "demo7_1_Complex.h"demo7_1_Complex::demo7_1_Complex() { _real = 0; _image = 0; cout << "demo7_1_Complex()" << endl;}demo7_1_Complex::demo7_1_Complex(double r, double i) { _real = r; _image = i; cout << "demo7_1_Complex(double r, double i)" << endl;}demo7_1_Complex::~demo7_1_Complex() { cout << "~demo7_1_Complex()" << endl;}demo7_1_Complex::demo7_1_Complex(const demo7_1_Complex &x) { _real = x._real; _image = x._image; cout << "demo7_1_Complex(const demo7_1_Complex &x)" << endl;}demo7_1_Complex demo7_1_Complex::operator+(const demo7_1_Complex &x) { demo7_1_Complex tmp; tmp._real = _real + x._real; tmp._image = _image + x._image; cout << "+" << endl;// return demo7_1_Complex(_real + x._real, _image + x._image); return tmp;}demo7_1_Complex& demo7_1_Complex::operator=(const demo7_1_Complex &x) { _real = x._real; _image= x._image; cout << "=" << endl; return *this;}demo7_1_Complex& demo7_1_Complex::operator++() { //前置++ _real++; _image++; return *this;}demo7_1_Complex demo7_1_Complex::operator++(int) { //后置++ demo7_1_Complex tmp(*this); _real++; _image++; return tmp;}ostream& operator<<(ostream& os, const demo7_1_Complex &x){ os << "real value is:" << x._real << " image value is:" << x._image; return os;}istream& operator>>(istream& is, demo7_1_Complex &x){ is >> x._real >> x._image;}