📜  C++中的重载流插入(<>)运算符(1)

📅  最后修改于: 2023-12-03 14:59:51.670000             🧑  作者: Mango

C++中的重载流插入(<<)运算符

在C++中,可以通过重载流插入(<<)运算符,实现自定义的输出格式。通过自定义的输出格式,我们可以更加直观地了解对象的信息。

1. 重载流插入运算符的语法
ostream& operator<<(ostream& os, const T& obj);

其中,os表示输出流,T表示自定义类型。

2. 为类重载流插入运算符

以一个简单的学生类为例,演示如何为类重载流插入运算符。

class Student {
public:
    Student(string name, int age, string gender)
        : m_name(name), m_age(age), m_gender(gender) {}
    friend ostream& operator<<(ostream& os, const Student& s);
private:
    string m_name;
    int m_age;
    string m_gender;
};

ostream& operator<<(ostream& os, const Student& s) {
    os << "name: " << s.m_name << ", age: " << s.m_age << ", gender: " << s.m_gender;
    return os;
}

在上述例子中,我们为Student类重载了流插入运算符,定义了输出的格式。

3. 流插入运算符的使用

在程序中,我们可以像使用cout输出对象一样,使用流插入运算符输出对象。

int main() {
    Student s("Tom", 18, "male");
    cout << s << endl;
    return 0;
}

上述程序输出结果为:

name: Tom, age: 18, gender: male
4. 总结

通过重载流插入运算符,我们可以为自定义类型实现自定义的输出格式,方便程序员快速查看对象信息。需要注意的是,流插入运算符的返回值一般都为流对象本身。