普通流插入函数<<重载?

ebeyondboy 2009-03-12 10:23:02
没有类,定义了一个数组a[size],如果自己写一个operator<<,能cout<<a吗?
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
amossavez 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fengxuxing 的回复:]
数组大小本身不确定,所以在传递到 < <重载中的时候会出现无法确定边界的问题,而如果要传递大小,那么你又无法对 < <重载,所以这两者是矛盾的,只能构造有一点限制的 < <重载来实现输出数组
[/Quote]
学习了!!
Qlaiaqu 2009-03-12
  • 打赏
  • 举报
回复
数组大小本身不确定,所以在传递到<<重载中的时候会出现无法确定边界的问题,而如果要传递大小,那么你又无法对<<重载,所以这两者是矛盾的,只能构造有一点限制的<<重载来实现输出数组
speeder53 2009-03-12
  • 打赏
  • 举报
回复
mk
hyram 2009-03-12
  • 打赏
  • 举报
回复
运算符重载时至少有一个操作数需要是用户自定义类型。
ebeyondboy 2009-03-12
  • 打赏
  • 举报
回复
#include<iostream>
using std::cout;
using std::endl;

template<class T>
void operator<<(ostream &output,T a[])
{
for(int i=0;i<10;i++)
output<<a[i]<<' ';
}

template<class T>
void InsertionSort(T a[],int n)
{
int i,j;
T temp;
for(i=1;i<n;i++)
{
j=i;
temp=a[i];
while(j>0&&temp<a[j-1])
{
a[j]=a[j-1];
j--;
}
cout<<a;
cout<<endl;
}
}
int main()
{
const int S=10;
int a[S]={1,3,5,2,4,8,9,0,6,7};
InsertionSort(a,S);
return 0;
}

想这样子,怎么写流插入函数?
谢谢
  • 打赏
  • 举报
回复
你得重载一下。
mengde007 2009-03-12
  • 打赏
  • 举报
回复
cout本身就是一个重载啊!
hemiya 2009-03-12
  • 打赏
  • 举报
回复
按你的要求,回答是不能.
除非数组的size,是固定不变的并且a的类型是你自定义的,不是系统内置或者stl库里面定义好的.

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧