C++中如何定义运算符重载,没看明白啊。。。

老师讲课一带而过,然后留了一道书上找不到解决办法的题~~比如我定义了一个string类(就是模仿<string>的那个)。这是我们老师幻灯片上留的作业题,帮我写个加号重载... 老师讲课一带而过,然后留了一道书上找不到解决办法的题~~
比如我定义了一个string类(就是模仿<string>的那个)。这是我们老师幻灯片上留的作业题,帮我写个加号重载的函数输出的函数和输出的函数可以么,让我有章可循额。。手里目前就一本谭浩强的书和一本学校的英文教材,里面几乎没什么内容啊。。
class string
{
public:
string()(char* =“ ”);
string(const string&);
string& operator + (string&);
.......
......
friend ostream& operator<<(ostream&,string&);
private:
char *p;
int strlenth;
};
加号重载字符串相加,输出应该是输出处理后的字符串。。
展开
 我来答
似米产开禅色0g
推荐于2016-09-23 · 超过16用户采纳过TA的回答
知道答主
回答量:54
采纳率:100%
帮助的人:46.3万
展开全部
这要看你重载的运算符想实现什么功能了。。。
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
class string
{
public:
string(char* ="");
string(const string&);
string& operator + (string&);
friend ostream& operator<<(ostream& os, string& s)
{
return os<<s.p;
}
private:
char *p;
int strlenth;
};
string::string(char* str)
{
if(!str)
{
strlenth=0;
str=new char[1];
str='\0';
}
else
{
strlenth=strlen(str);
p=new char[strlenth+1];
strcpy(p,str);
}
}
string::string(const string& s)
{
p=new char[strlen(s.p)+1];
strcpy(p,s.p);
}
string& string::operator+(string& s)
{
char* tem;
tem=(char*)malloc(strlenth+s.strlenth+1);
strcpy(tem,p);
strcat(tem,s.p);
string s_tem(tem);
free (tem);
return s_tem;
}
int main(void)
{
string str1("abc");
string str2("def");
str1=str1+str2;
cout<<str1;
return 0;
}试试这个 刚才编译不过是VC6的问题,这下可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Melina77
2013-03-30
知道答主
回答量:9
采纳率:0%
帮助的人:4.1万
展开全部
就像定义函数那样定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇暁仙
2013-03-30 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:93.6万
展开全部
我可以传你我们老师以前给我们的PPT,很详细的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式