为什么需要重载输入输出运算符
有人会问,我直接用 iostream 里面的标准输入输出不好吗,搞这么麻烦?
事实上,你会发现C++里面很多的(尤其是运算符)重载都是 面向对象惹的祸。而用户自定义数据类型的输入输出,就是通过重载运算符“<<“和”>>“实现的。
重载输出运算符
重载输出运算符”<<“也称为插入运算符,用于用户自定义类型的输出,其定义函数的一般形式为:
ostream &operator<<( ostream &stream, 类名 对象名 )
{
// 操作代码
return stream;
}
其中,第一个参数stream是对ostream对象的引用,必须是输出流,它可以是其他合法的标识符,但必须与return后面的标识符相同;第二个参数接收将被输出的对象。
重载输入运算符
重载输入运算符“>>“也称为提取运算符,用户用于自定义类型的输入,其定义函数的一般格式为:
istream &operator<<( istream &stream, 类名 &对象名 )
{
// 操作代码
return stream;
}
其中,第一个参数stream是对istream对象的引用,必须是输出流,它可以是其他合法的标识符,但必须与return后面的标识符相同;