左移运算符重载

#include<iostream>
using namespace std;

//c++重载左移运算符

class person
{
    friend ostream& operator<<(ostream& cout, person& p);

public:
    person(int a, int b)
    {
        m_b = b;
        m_a = a;
    }

private:
    int m_b;
    int m_a;
};

//左移运算符必须要用全局函数重载,否则不能达到cout在左边的效果

ostream& operator<<(ostream &cout,person &p)//cout 实际上是一个输出流类型,并且这个过程只能有cout一个所以需要用引用来代替cout
{
    cout << "m_a = " << p.m_a << " m_b = " << p.m_b;
    return cout;
}

int main(void)
{
    person p(10, 20);
    cout << p << endl;//cout<<采用的是一种链式输出思想,所以每次返回的类型必须都是输出流才可以继续输出内容

    return 0;
}

 

posted @ 2021-01-14 10:42  loliconsk  阅读(170)  评论(0)    收藏  举报