#include <bits/stdc++.h>
using namespace std;
class Mystring
{
public:
//使用字符串构造
Mystring(const char *st)
{
strcpy(strr, st);
}
//默认构造函数
Mystring()
{
char st[len] = {0};
strcpy(strr, st);
}
//对+ 号进行重载 也就是字符串的粘贴,但是这是返回一个新的字符串
Mystring operator+(Mystring &obj)
{
Mystring temp;
strcat(temp.strr,this->strr);
strcat(temp.strr,obj.strr);
return temp;
}
//对+=重载 这个返回的还是原来那个字符串
void operator+=(Mystring &obj)
{
strcat(this->strr, obj.strr);
}
//判断字符串的内容是否相同 而不是地址
bool operator==(Mystring &obj)
{
if(strcmp(this->strr, obj.strr) == 0)
return true;
else
return false;
}
//赋值操作
void operator=(Mystring &obj)
{
strcpy(this->strr, obj.strr);
}
void print_str()
{
cout<<strr<<endl;
}
// + += == =
private:
char strr[256];
int len = 256;
};
int main(int argc, char *argv[])
{
Mystring s1("hello");
Mystring s2("world");
Mystring s3 = s1 + s2;
s3.print_str();
s1 += s2;
s1.print_str();
s1 = s2;
s1.print_str();
s2.print_str();
return 0;
}
C++使用重载实现string类型操作
于 2022-08-12 09:08:25 首次发布