C++输入输出运算符重载
来源:互联网 发布:git安装教程mac 编辑:程序博客网 时间:2024/05/29 09:43
//Foo.h
#include<iostream>
using namespace std;
class Foo
{
public:
Foo(int val = 0);
ostream& operator<<(ostream& os);
friend ostream& operator<<(ostream& os,const Foo& foo);
istream& operator>>(istream& in);
friend istream& operator>>(istream&in,Foo& foo);
~Foo();
private:
int val;
}
//Foo.cpp
#include"Foo.h"
ostream& Foo::operator<<(ostream& os)
{
os<<this->val<<endl;
return os;
}
ostream& operator<<(ostream& os,const Foo& foo)
{
os<<foo.val<<endl;
return os;
}
istream& Foo::operator>>(istream& in)
{
in>>this->val;
return in;
}
istream& operator>>(istream& in,Foo& foo)
{
in>>foo.val;
return in;
}
//main.cpp
#include"Foo.h"
int main()
{
Foo foo = Foo(1);
foo<<cout;//调用的Foo的类成员函数,之所以会出现这种违背习惯的用法是如果声明为类成员函数则会有this默认做为一个形参,且必须为该操作符的左值。
cout<<foo;//调用的Foo类的友元函数
cin>>foo;//友元
foo>>cin;//类成员函数
return 0;
}
//通过以上说明,在重载输出输入运算符的时候,必须声明为友元函数。
- 【C++】重载输入输出运算符
- 【C++】输入输出运算符的重载
- 输入输出运算符重载
- 重载输入输出运算符
- 输入输出运算符重载
- 输入输出运算符重载
- 输入输出运算符重载
- C++重载输入输出运算符
- C++输入输出运算符重载
- C++输入输出运算符重载
- C++输入输出运算符重载
- C++ 输入输出运算符重载
- C++ 输入输出运算符重载
- C++输入输出运算符重载
- 输入输出运算符的重载
- 重载运算符和输入输出流
- 深入解析C++输入输出运算符重载
- 基础备忘:输入输出运算符重载
- Oracle Database 11g Release 2 Standard Edition and Enterprise Edition Software Downloads
- hdu 1093a+b问题5 n行数n在前.每行m个m在前 20140722.cpp
- URL是什么
- 把UML概念融合到整个软件设计过程
- 导航管理的制作
- C++输入输出运算符重载
- 工作中的感悟 (三)三个月碎碎念篇
- 暑期个人赛--第一场--A -
- C++程序设计课程
- 有关条件编译、extern的问题
- mac eclipse 编码 GBK
- HDU 3746 Cyclic Nacklace //深刻理解next数组
- 内核模块学习
- 几款百度竞价点击软件测评来一发