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& operator << (ostream& os, Student& stu){ os << "姓名:" << stu.m_name << ", 年龄:" << stu.m_age << ", 性别:" << stu.m_sex; return os; } }; int main(){ Student stu; stu.m_name = "Sian"; stu.m_age = 31; stu.m_sex = "保密"; cout << stu << endl; return 0; } |
6、运行结果:
姓名:Sian, 年龄:31, 性别:保密
Program ended with exit code: 0