| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 621 人关注过本帖
标题:重载运算符问题
只看楼主 加入收藏
wumingsx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-3-10
收藏
 问题点数:0 回复次数:2 
重载运算符问题

定义一个String类重载+与<<

#include<string>
#include<iostream>
using namespace std;

class String
{
char str[80];
public:
String(){strcpy(str," ");}
String(char s[]){strcpy(str,s);}
void display()const{cout<<str<<endl;}
String operator + (String s)
{
String temp;
if (strlen(str)+strlen(s.str)<80)
{
strcpy(temp.str,str);
strcat(temp.str,s.str);
}
else
{
cout<<"string is overflow";
}
return temp;
}
ostream& operator << (ostream& o,String ss)
{
o<<ss.str;
return o;
}
};

int main()
{
String s1="Merry Christmas!";
String s2="Happy Newyear!";
String s3;
s1.display();
s2.display();
s3.display();
s3=s1+s2;
s3.display();
cout<<s3;
return 0;
}

其中ostream& operator << (ostream& o,String ss)
{
o<<ss.str;
return o;
}
编译错误是什么问题,谢谢大家!!

搜索更多相关主题的帖子: 算符 载运 
2006-03-20 01:03
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 
ostream& operator << (ostream& o,String ss)改为友元函数
friend ostream& operator << (ostream& o,String ss)

谷底深深行 ,峰顶漫漫步......@_@
2006-03-20 13:46
wanduolaaa
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-3-23
收藏
得分:0 

同意二楼的 要重载输入 输出运算符就得声明为友员函数然后在类外定义~!

2006-03-23 13:22
快速回复:重载运算符问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016323 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved