帮我用strcmp函数来实现小于号重载
时间: 2024-06-01 13:03:40 浏览: 41
小于号重载需要返回一个bool类型的值,表示两个对象的大小关系。可以使用strcmp函数来比较两个字符串的大小关系,如果第一个字符串小于第二个字符串,则返回负数;如果两个字符串相等,则返回0;如果第一个字符串大于第二个字符串,则返回正数。因此,可以根据strcmp函数的返回值来实现小于号重载。
下面是一个示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class String {
public:
String(const char* str) {
size = strlen(str);
data = new char[size + 1];
strcpy(data, str);
}
~String() {
delete[] data;
}
bool operator<(const String& str) const {
return strcmp(data, str.data) < 0;
}
private:
char* data;
int size;
};
int main() {
String str1("hello");
String str2("world");
if (str1 < str2) {
cout << "str1 < str2" << endl;
} else {
cout << "str1 >= str2" << endl;
}
return 0;
}
```
在上面的代码中,String类重载了小于号运算符,实现了字符串的大小比较。在main函数中,创建了两个String对象,分别表示"hello"和"world"两个字符串。通过重载的小于号运算符,判断了这两个字符串的大小关系,并输出了相应的结果。
阅读全文