#include <string.h> //***题目部分************************************ class String { public: String(const char *str = NULL); String(const String &another); ~ String(); String & operator =(const String &); private: char *m_data; // 用于保存字符串 }; //************************************************ String::String(const char *str) { if(str == NULL) { m_data = new char[1];// 直接返回了个NULL,低级错误。 m_data[0] = '\0'; } else m_data = new char[strlen(str) + 1]; strcpy(m_data, str); } String::String(const String &another) { if(&another == this) // 写成了another == *this return; else { m_data = new char[strlen(another.m_data) + 1]; strcpy(m_data, another.m_data); } } String::~String() { if(m_data != NULL) delete[] m_data; } String& String::operator =(const String &rhs)// 格式错误,写成了String::String& operator=...... { if(&rhs == this) return *this; else { delete[] m_data; // 忘记了清除原来的数据 m_data = new char[strlen(rhs.m_data) + 1]; strcpy(m_data, rhs.m_data); } return *this; }
编程练习- 尝试写出String类的成员函数实现
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:编程练习-反转链表
下一篇:编程练习-自己写一个strcpy

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
列表练习 尝试使用各个函数
学习笔记
python -
ios类的成员函数指针 类成员函数指针调用
类的成员函数指针和普通的函数指针 在C++中是完全两个不同的东西今天偶然需要找了点资料才发现这个问题,写一个简单的例子
ios类的成员函数指针 类的成员函数指针 成员函数指针 函数指针 操作符