c++设计一个字符串类,通过重载“+”运算符实现两个字符串的拼接运算?

设计一个字符串类,通过重载“+”运算符实现两个字符串的拼接运算。分别用成员函数和友元函数的方法实现如下三种拼接形式:1)字符串类对象+字符数组//成员函数的方法2)字符串... 设计一个字符串类,通过重载“+”运算符实现两个字符串的拼接运算。分别用成员函数和友元函数的方法实现如下三种拼接形式:
1)字符串类对象+字符数组 //成员函数的方法
2)字符串类对象+字符串类对象 //成员函数的方法
3)字符数组+字符串类对象 //友元函数的方法
编写主函数测试设计的正确性。
展开
 我来答
百度网友b66829de0
2020-06-14 · TA获得超过114个赞
知道小有建树答主
回答量:259
采纳率:65%
帮助的人:73.1万
展开全部
#include <iostream>
#include <string>
using namespace std;

class MyString
{
public:
MyString() {}
~MyString(){}
MyString(const char p[])
{
buf = p;
}
//1)字符串类对象+字符数组 //成员函数的方法
MyString operator+(const char p[])
{
MyString* tmp = new MyString();
tmp->buf.append(this->buf);
tmp->buf.append(p);
return *tmp;
}
//2)字符串类对象 + 字符串类对象 //成员函数的方法
MyString operator+(const MyString& s)
{
MyString* tmp = new MyString();
tmp->buf.append(this->buf);
tmp->buf.append(s.buf);
return *tmp;
}
//3)字符数组+字符串类对象 //友元函数的方法
friend string myStrcat(const char p[],const MyString& s);

void print() { cout << buf << endl; }
private:
string buf;
};

string myStrcat(const char p[], const MyString& s)
{
string str = s.buf;
return p+str ;
}
int main()
{
char p[] = "test01";
MyString str1 = "test02";
MyString str2 = "test03";
(str1 + p).print();
(str1 + str2).print();
cout << myStrcat(p, str1) << endl;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式