使用成员函数或友员函数编写程序重载运算符+”,使该运算符能实现两个字符事的连接。对于给定的两个字符串,输出连接之后的字符串。
时间: 2025-06-14 07:16:03 浏览: 13
在C++中,你可以通过在类中声明成员函数或者友元函数来重载运算符`+`,使得它可以用于连接两个字符。以下是一个简单的示例,我们将创建一个名为`CharString`的类,并提供一个重载的`+`操作符来连接两个字符:
```cpp
class CharString {
private:
char data[100]; // 存储字符的数组
public:
// 构造函数
CharString(const char* str = "") : data(strlen(str) + 1) {
strcpy(data, str);
}
// 运算符+ 的成员函数实现,连接两个CharString对象
CharString operator+(const CharString& other) {
if (data[strlen(data) - 1] != '\0') { // 避免添加空结束符到第二个对象
strcat(data, other.data);
} else {
strcpy(data + strlen(data), other.data);
}
return *this;
}
// 返回结果字符串(包含操作符+的结果)
const char* result() const {
return data; // 如果需要返回常量引用,加上const前缀
}
// 友元函数实现,允许从外部直接调用运算符+
friend std::ostream& operator<<(std::ostream& os, const CharString& cs);
};
// 输出函数,用于演示如何连接并显示字符串
std::ostream& operator<<(std::ostream& os, const CharString& cs) {
os << cs.result();
return os;
}
int main() {
CharString s1("Hello");
CharString s2("World");
CharString combined = s1 + s2;
std::cout << "Combined string: " << combined << std::endl;
return 0;
}
```
在这个例子中,当你运行`combined = s1 + s2;`这行代码时,会将`s1`和`s2`的内容合并成一个新的`CharString`对象。最后,`main`函数通过`operator<<`输出连接后的字符串。
阅读全文
相关推荐


















