前言
今天我们来谈谈C++中的运算符重载,关于C++的运算符重载,笔者之前学完一直想知道用在什么地方比较巧妙。今天我们就是用运算符重载来重载“+”号运算符实现字符串的拼接。
例如: "hello " + “world” = “hello world”
一、什么是运算符重载?
运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。
二、代码实现
1.Mystring.h
代码如下(示例):
#ifndef MYSTRING_H
#define MYSTRING_H
#include <cstring>
class Mystring{
public:
char * id; //保存字符串
Mystring(){}; //无参构造
Mystring(char * id){ //有参构造
this->id = id;
};
~Mystring(){};
Mystring operator+(const Mystring str1) //重载"+"实现
{
int len = strlen(this->id) + strlen(str1.id);
char array_str[len];
strcpy(array_str, this->id); //复制"+"前面的字符串存入数组
strcpy( (char *)(array_str + strlen(this->id)), str1.id);//复制"+"后面的字符串存入数组
this->id = array_str;
return * this;
}
};
#endif // MYSTRING_H_INCLUDED
2.main.cpp
代码如下(示例):
#include <iostream>
#include "Mystring.h"
using namespace std;
int main()
{
Mystring str;
Mystring str1("hello "); //经本人测试字符串可以输入中文
Mystring str2("world");
str = str1 + str2;//重载之后对象相加实际是字符串的拼接
cout << str.id << endl;
return 0;
}
结果如下:
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了重载"+"运算符。希望有助于大家学好运算符重载。