c++中负号和减号的操作符重载

1. 创建complex复数类

#ifndef COMPLEX_H
#define COMPLEX_H


#include 
using namespace std;

class complex
{
public:
    complex(int re = 0, int im = 0)
    {
        real = re;
        image = im;
    }
    //重载负号
    complex operator -()    
    {
        return complex(-real, -image);
    }
    //重载减号
    friend complex operator -(const complex &c1, const complex &c2)    
    {
        return complex(c1.real-c2.real, c1.image-c2.image);
    }
    friend ostream &operator <<(ostream &os, const complex &c)
    {
        os << "(" << c.real << ", " << c.image << ")";
        return os;
    }
private:
    int real;
    int image;
};

#endif // COMPLEX_H


2. 测试代码

    complex c1(3,3);
    complex c2(5,5);
    cout << -c1 << endl;
    cout << c2 -c1 <


3. 运行结果



4. 参考文献:
1) C++面向对象高级开发
2) C++同时重载减号运算符和负号运算符的问题

你可能感兴趣的:(成长进步)