博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
string类实现
阅读量:4982 次
发布时间:2019-06-12

本文共 1395 字,大约阅读时间需要 4 分钟。

#include 
#include
using namespace std;class MyString {public: MyString(); MyString(const char* cstr); MyString(const MyString &other); MyString& operator=(const MyString &other); size_t length() { return size; } friend istream& operator>>(istream &in, const MyString &str); friend ostream& operator<<(ostream &out, const MyString &str); ~MyString();protected: char *data; size_t size;};MyString::MyString() { size = 0; data = new char[1]; *data = '\0';}MyString::MyString(const char *cstr) { if (cstr != NULL) { size = strlen(cstr); data = new char[size + 1]; strcpy(data, cstr); } else { size = 0; data = new char[size + 1]; *data = '\0'; }}MyString::MyString(const MyString &other) { if (!other.data) { data = new char[other.size + 1]; *data = '\0'; size = 0; } else { size = other.size; data = new char[1]; strcpy(data, other.data); }}MyString& MyString::operator =(const MyString &other) { /*if (this != &other) { size = strlen(other.data); char *temp = new char[size + 1]; strcpy(temp, other.data); delete []data; data = temp; } return *this;*/ if (this != &other) { MyString strTmp(other); char *pTmp = strTmp.data; strTmp.data = data; data = pTmp; }
 
return *this;}MyString::~MyString() {	delete []data;}int main(){	char *s = NULL;	MyString str(s);	return 0;}

转载于:https://www.cnblogs.com/helloweworld/archive/2013/04/26/3045110.html

你可能感兴趣的文章
明天回老家看我儿子了!
查看>>
hdu2089(数位dp模版)
查看>>
JS 获取浏览器和屏幕宽高信息
查看>>
TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
查看>>
我的大学生活
查看>>
php SPL四种常用的数据结构
查看>>
计算tableview的高度
查看>>
使用外语会影响我们的道德判断
查看>>
菜鸟学Java第一天
查看>>
【freemaker】之自定义指令通用select模版
查看>>
PHP类和对象之重载
查看>>
解决 win10 由于磁盘缓慢造成机器迟钝
查看>>
flask-信号
查看>>
Spring-Cloud的版本是如何定义的
查看>>
传入class、id name 的函数封装
查看>>
软工网络15团队作业3——需求分析与设计
查看>>
python 类对象和实例对象动态添加方法
查看>>
【转】C#生成验证码
查看>>
Linux环境下JDK/Eclipse一键安装脚本
查看>>
HwUI,CMS管理系统模板,漂亮,简单,兼容好
查看>>