C++类中重载输出运算符<<

1、在C++中方法重载是一个重要的特性,运算符同样也是可以重载的;
2、自定义类,正常情况下是不能直接使用输出运算符的,如(cout << xxx;);
3、我们需要使用cout打印输出类的信息,该怎么cout呢?(类似objC中重写对象的description方法);
4、cout中的<<运算符实际上也是一个函数,参数为ostream与当前类的引用,返回ostream的引用;
5、看代码就明白了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include 
using namespace std;
 
class Student{
public:
    string  m_name;
    int     m_age;
    string  m_sex;
    friend ostream&amp; operator &lt;&lt; (ostream&amp; os, Student&amp; stu){
        os &lt;&lt; "姓名:" &lt;&lt; stu.m_name &lt;&lt; ", 年龄:" &lt;&lt; stu.m_age &lt;&lt; ", 性别:" &lt;&lt; stu.m_sex;
        return os;
    }
};
int main(){
    Student stu;
    stu.m_name = "Sian";
    stu.m_age = 31;
    stu.m_sex = "保密";
    cout &lt;&lt; stu &lt;&lt; endl;
    return 0;
}

6、运行结果:

姓名:Sian, 年龄:31, 性别:保密
Program ended with exit code: 0

Leave a Reply