C++ 重载 数组对象输入输出流的实现!!!

C++ 重载 数组对象输入输出流的实现!!!

重载
一个对于c++学习者,必备的技能。简单的来说就是让一些符号依据他们使用对象的不同具有更多重的作用,那为什么说数组的重载呢?,那是因为一下输出多个数组,是不是有点不适应呢?小唐同学慢慢的来吧这个东西来将清楚!
输入输出流
你肯定看过头文件的 iostream 对吧
他的意思就是:输入输出流
然后就引出了
输入流
istream 不就可以和cin中的i,联系起来

输出流
ostream 不就可以和cout中的o,联系起来
!!!!!!!!!!!!!!!!重点来了
我们一般就直接在class里面的public来定义输入输出流的重载,公有嘛

public:
	friend istream & operator >> (istream&input, shuzu&A);//定义输入数组
	friend ostream & operator << (ostream&output, shuzu&A);//定义输出数组

friend,就是类的好朋友了,可以直接访问私有的数组元素了,也就是你的数组
然后你的输入输入流不就是前面提及过的istream(输入流),ostream(输出流),这个东西其实就相当于你的函数类型懂吗?
平时我们加法的重载不就是 int operator +(类型)仔细看你operator前面的类型,不就换了一下,int—>istream/ostream
因为你的 >>(输入流) <<(输出流)符号是属于输入输出流istream,ostream这一类型
好的,然后你看后面
(ostream&, shuzu&)
他就相当于直接用了ostream这个类,用了引用,后面的话就是来确定他的数组对象

ostream & operator << (ostream&ou, shuzu&A)
{
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++)
			ou  << setw(2)<<A.a[i][j];
		    cout << endl;
	}
	return ou;
}

这就不就很明白了,我们用一个ou来命名(可以更改的),这个时候你还要知道一点这是的ou就是相当于cout
然后是数组对吧,所以你应该,输出的时候好看一点对吧,我们空格太麻烦了,你可以直接用#include 里面的 setw(2)来填充空格,这里有个误区就是你的cout和你ou在这里并不冲突,可以直接用
最后的时候来返回,因为你是输出流里面的对象,所以你应该返回一个输出流类的,也就是return ou

代码:

#include <iostream>
#include <iomanip>
using namespace std;
class shuzu
{
	public:
	friend istream & operator >> (istream&, shuzu&);//定义输入数组
	friend ostream & operator << (ostream&, shuzu&);//定义输出数组
	private:
	int a[4][4];
};
istream & operator >> (istream&in, shuzu&A)
{
	for (int i = 1; i < 5; i++)
	for (int j = 1; j < 5; j++)
		in >> A.a[i][j];
	return in;
}
ostream & operator << (ostream&ou, shuzu&A)
{
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++)
			ou  << setw(2)<<A.a[i][j];
		    cout << endl;
	}
	return ou;
}
int main()
{
   shuzu A;
   cin>>A;
   cout<<A;
   return 0;
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我小唐就好了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值