自定义一个 string 类 , 要求添加相关函数的实现代码 。
class String
{
public:
String(const string (s); / / 构造函数
/ / 友元运算符重载
friend String operator +(const String &s1 const String &s2);
friend bool operator ==(const String &s1 ,const String &s2);
/ / 成员函数运算符
bool operator !=(const String &other);
/ / 类型转换重载
String& operator =(const String &s);
operator string(); / / 类型重载
/ / 成员函数
string get_str();
private:
string str;
}
#include <iostream>
#include <string>
using namespace std;
class String {
public:
String(const string& s) : str(s) {} // 构造函数
// 友元运算符重载
friend String operator +(const String& s1, const String& s2);
friend bool operator ==(const String& s1, const String& s2);
// 成员函数运算符
bool operator !=(const String& other);
// 类型转换重载
String& operator =(const String& s);
operator string(); // 类型转换
// 成员函数
string get_str();
private:
string str;
};
String operator +(const String& s1, const String& s2) {
String result = s1.str + s2.str;
return result;
}
bool operator ==(const String& s1, const String& s2) {
return s1.str == s2.str;
}
bool String::operator !=(const String& other) {
return str != other.str;
}
String& String::operator =(const String& s) {
if (this != &s) {
str = s.str;
}
return *this;
}
String::operator string() {
return str;
}
string String::get_str() {
return str;
}
int main() {
String s1("Hello");
String s2("World");
String s3 = s1 + s2;
cout << "s3: " << s3.get_str() << endl;
if (s1 == s2) {
cout << "s1 is equal to s2" << endl;
} else {
cout << "s1 is not equal to s2" << endl;
}
return 0;
}