<<的重载

#include <iostream>

class Complex
{
public:
    Complex(int a = 0, int b = 0) : a_(a), b_(b)
    {
    }

private:
    int a_;
    int b_;

    friend Complex operator+(const Complex& lhs, const Complex& rhs);
    friend std::ostream& operator<<(std::ostream& os, const Complex& cpl);
};

Complex operator+(const Complex& lhs, const Complex& rhs)
{
    return Complex(lhs.a_ + rhs.a_, lhs.b_ + rhs.b_);
}

std::ostream& operator<<(std::ostream& os, const Complex& cpl)
{
    return os << '(' << cpl.a_ << '+' << cpl.b_ << "i)";
}

using namespace std;

int main()
{
    Complex c1(10, 20);
    Complex c2(1, 2);
    cout << c1 << '\n'
        << c2 << '\n';

    Complex c4 = c2 + c1 + c1;
    cout << c4 << endl;

    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容