司剑虹俺家住在黄华街:C++ 中“+”法如何实现

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 07:32:12
做一个MyString类

设char s1[10]={a,b,c}
char s2[10]={d,e,f}
要实现 s3=s1+s2
即s3要等于a,b,c,d,e,f,\0

请问如何实现
主要是C++如何识别"+"这个符号

直接重载+号就可以了.
#include<iostream>
#include<string>
class Mystring
{

public:
char *s3;

Mystring(char *p){s3=p;};
Mystring operator+(Mystring p);
};
Mystring Mystring::operator+(Mystring p)
{
strcat(s3,p.s3);
return *this;
};
using namespace std;
void main()
{ int i=0;
char a[10]={0};
char b[10]={'a','b','c'};
char c[10]={'d','e','f'};
Mystring s3(a);
Mystring s2(b);
Mystring s1(c);
s3=s2+s1;
cout<<s3.s3 <<"\n";
cin>>i;
}

这个功能好像c++提供一个函数, 直接就能, 记不清了

也可以自己编程实现

int j = 0;
for (int i = 0; i <= 10; i ++)
{
if (s1[i] == '\0' && s2[j] != '\0')
{
s[i] = s[j];
j ++;
}
else
s[i] = '\0';
}

同上面几位,用Operator Overloading就可以了。
你的类怎么写的?
建议不要限制字符串长度(用动态内存分配代替数组),增强通用性。

看一看C++的运算符重载吧。

c++ 模板有一个 string对象

string a, b;
string result = a + b;