定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”,“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。
时间: 2024-01-21 19:05:07 浏览: 20
好的,下面是一个简单的String类的定义,其中包含了重载的“==”,“<”和“>”运算符。
```c++
class String {
private:
char* str; // 用于存放字符串的字符数组
int length; // 字符串的长度
public:
// 构造函数,用于初始化字符串
String(const char* s = "") {
length = strlen(s);
str = new char[length + 1];
strcpy(str, s);
}
// 复制构造函数,用于创建一个新的String对象,其内容与另一个String对象相同
String(const String& s) {
length = s.length;
str = new char[length + 1];
strcpy(str, s.str);
}
// 析构函数,用于释放动态分配的内存
~String() {
delete[] str;
}
// 重载运算符“==”,用于比较两个字符串是否相等
bool operator==(const String& s) const {
return (strcmp(str, s.str) == 0);
}
// 重载运算符“<”,用于比较两个字符串的大小
bool operator<(const String& s) const {
return (strcmp(str, s.str) < 0);
}
// 重载运算符“>”,用于比较两个字符串的大小
bool operator>(const String& s) const {
return (strcmp(str, s.str) > 0);
}
};
```
这个String类中,我们使用了动态分配内存的方式来存储字符串,以便支持不定长的字符串。在重载运算符“==”,“<”和“>”时,我们使用了C++标准库中的strcmp函数来比较字符串的大小和相等性。