通常希望对某个类的对象进行读写操作: cout<< train<<endl;
    为了支持上述形式, 希望对<<运算符重载:

    1. ostream& operator<<(ostream& os, const Triangular &rhs){
    2. os<<"输出"<<endl;
    3. return os;
    4. }

    :::tips

    • 都使用引用的方式传递
    • os并不声明为const,因为每个output操作都会改变os的内部状态;
    • 为何不把<<声明为member function?
      • 做为成员函数的话,对象必须在<<的左边才能调用他,即train<<cout,容易引起误解; :::