hwaityd的小窝

Loading...
随笔 - 26,  文章 - 0,  评论 - 0,  阅读 - 437

下面是使用C++实现的一个简单的String类,包括私有成员std::string s用于存储字符串数据,以及构造函数、拷贝构造函数、析构函数和赋值函数。此外,我还添加了一个命名空间MyNamespace来组织这个类。

#include <iostream>
#include <cstring>
namespace MyNamespace {
class String {
private:
std::string s; // 用于存储字符串的私有成员
public:
// 构造函数
String(const char* str) : s(str) {}
// 拷贝构造函数
String(const String& other) : s(other.s) {}
// 析构函数
~String() {
// std::string的析构函数会自动清理资源
}
// 赋值函数
String& operator=(const String& other) {
if (this != &other) {
s = other.s;
}
return *this;
}
// 为了演示,添加一个打印函数
void print() const {
std::cout << s << std::endl;
}
};
int main() {
String str1("Hello, World!");
str1.print(); // 输出: Hello, World!
String str2 = str1; // 调用拷贝构造函数
str2.print(); // 输出: Hello, World!
String str3("Kimi");
str3 = str2; // 调用赋值函数
str3.print(); // 输出: Hello, World!
return 0;
}
}

在这个实现中:

  • 构造函数接收一个const char*类型的参数,并将其传递给std::string的构造函数。
  • 拷贝构造函数创建了一个新的String对象,它是现有对象的副本。
  • 析构函数目前没有执行任何特殊操作,因为std::string的析构函数会自动释放其管理的内存。
  • 赋值函数实现了深拷贝,并在必要时进行了自赋值检查。
  • print函数用于输出字符串内容,以验证我们的String类是否按预期工作。

请注意,这个简单的String类并没有实现std::string类的全部功能,但它展示了如何使用std::string来管理字符串数据,并提供了基本的构造、拷贝构造、析构和赋值操作。在实际应用中,直接使用标准库中的std::string通常是更好的选择,因为它经过了优化和广泛的测试。

posted on   hwaityd  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示