自定义类型<<
和>>
重载
在内置类型中,<<和>>可以自动识别
在自定义类型冲,运算符重载,<<和>>也可以重载,我们首先来认识一下,<<和>>
//>>流插入 将键盘输入的内容,赋值到变量中
//<<流提取 将cout后面的内容输出到屏幕中
int main()
{
int a;
double b;
Date date;//自定义类型输出的形式,系统无法规定(自定义类型的成员变量不同),所以需要<<和>>重载
cin>>a>>b;//系统可以自动识别类型
cout<<a<<" "<<b<<endl;
return 0;
}
<iostream>是C++中的输入输出流,istream是输入流,ostream是输出流(这样理解即可)
std::ostream::operator<<我们看到编译器对于内置类型进行了处理,接下来以Date类为例子,进行操作符<<重载
对于<<和>>总结
1.可以直接支持内置类型是因为库中实现了
2.可以直接支持自动识别类型是因为函数重载,传入对应类型的参数就可以调用对应的函数
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//Date
class Date
{
public:
void operator<<(ostream& out);//我们使用的成员函数,所以默认this占用一个成员形参,调用这个函数的形式为 对象名.operator<<(cout)
Date(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}
private:
int _year;
int _month;
int _day;
};
void Date::operator<<(ostream& out)
{
out << _year << " " << _month << " " << _day << endl;
}
int main()
{
Dat