news 2026/5/28 17:10:38

【C++笔试题】实现自定义String类中的成员函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C++笔试题】实现自定义String类中的成员函数

题目:

实现自定义String类中的成员函数

class MyString { public: MyString(const char* str = nullptr); MyString(const MyString& other); MyString& operator=(const MyString& other); ~MyString(); private: char* _str; size_t _length; };

重点:

1.深拷贝

2.拷贝赋值运算符要处理自赋值

// 1. 带默认参数的构造函数实现 MyString::MyString(const char* str) : _length(0) { if (str == nullptr) { _str = new char[1]; _str[0] = '\0'; } else { _length = strlen(str); _str = new char[_length + 1]; strcpy(_str, str); } } // 2. 拷贝构造函数实现 MyString::MyString(const MyString& other) { _length = other._length; _str = new char[_length + 1]; strcpy(_str, other._str); } // 3. 拷贝赋值运算符重载实现 MyString& MyString::operator=(const MyString& other) { // 处理自赋值 if (this == &other) { return *this; } // 释放当前对象已有内存 delete[] _str; // 深拷贝 _length = other._length; _str = new char[_length + 1]; strcpy(_str, other._str); // 返回当前对象引用 return *this; } // 4. 析构函数实现 MyString::~MyString() { delete[] _str; _str = nullptr; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/24 23:38:58

微软开源Agent开发教程(37k start )

读者收益:这个全面的学习路径将引导你探索AI智能体的精彩世界,从基础概念到生产级实现。无论你是希望为应用程序增加智能体功能的开发者,还是想了解这项变革性技术的科技爱好者,本课程为你提供了入门所需的一切。 概述(什么是智能…

作者头像 李华
网站建设 2026/5/21 17:01:39

别再被 RAG 绕晕了!3 分钟搞懂大模型“检索-增强-生成”逻辑!

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型的人工智能技术。 该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型&#xf…

作者头像 李华
网站建设 2026/5/20 22:09:09

学网络安全 = 当黑客?揭秘技术本质、正统领域与白帽职业路径

提及网络安全,很多人都是既熟悉又陌生,所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 一、什么是网络安全? 网络安全是指保护网络系统、硬件、软件以及其中的数据免受…

作者头像 李华