重载<<和>>运算符
- 为什么要重载<< 和 >>
为了更方便的实现复杂对象的输入和输出。 - 在 C++ 中,左移运算符<<可以和 cout 一起用于输出,因此也常被称为“流插入运算符”或者“输出运算符”。
- 实际上,<<本来没有这样的功能,之所以能和 cout 一起使用,是因为被重载了。
- 两种方式实现:
第一种使用成员函数,不推荐,该方式没有实际意义
第二种使用友元函数实现
重载<<运算符 方式一:(使用成员函数, 不推荐,该方式没有实际意义)
Boy.h
#pragma once
#include <string>
#include <iostream> //包含头文件
using namespace std;
class Boy{
public:
Boy(const string name = "无名", int age = 0, int salary = 0);
//输出运算符重载
ostream& operator<<(ostream& os) const;
private:
string name;//姓名
int age; //年龄
int salary; //薪资
};
Boy.cpp
#include <sstream>
#include "Boy.h"
Boy::Boy(const string name, int age, int salary){
this->name = name;
this->age = age;
this->salary = salary;
}
//返回值是ostream的引用
ostream& Boy::operator<<(ostream& os) const{
os << "姓名:" << name << "\t年龄:" << age << "\t薪资:" << salary;
return os;
}
main.cpp
#include