左移運算子過載——C++
阿新 • • 發佈:2021-01-12
技術標籤:C++
場景:如果一個類person中有2個屬性,想要同時輸出是不可能的,必須要一個一個的指定,然後輸出。如下
person p;
cout<<p.m_a<<p.m_b<<endl;
但是直接用cout<<p<<endl;會報錯。實現這種直接輸出就可以用左值運算子過載實現。
程式碼實現:
#include<iostream> using namespace std; //左移運算子過載 //左移運算子過載配合友元可實現輸出自定義資料型別 class person { friend ostream& operator<<(ostream &cout, person &p); public: person(int a, int b) { m_a = a; m_b = b; } private: int m_a; int m_b; }; //只能利用全域性函式過載左移運算子 ostream& operator<<(ostream &cout, person &p) { cout << "m_a:" << p.m_a << " m_b:" << p.m_b << endl; return cout; //(實現鏈式程式設計) } void test() { person p(10,10); cout << p << endl; } int main() { test(); system("pause"); return 0; }
執行結果如下: