C++string类的简单实现
来源:互联网 发布:农业数据库 编辑:程序博客网 时间:2024/05/16 12:24
#include<iostream>#include<cstring>using namespace std;//C++实现stringclass MyString{private:char* m_pData;public://构造函数MyString(){m_pData = new char[1];*m_pData = '\0';}//构造函数MyString(const char* str){m_pData = new char[strlen(str) + 1];strcpy(m_pData, str);}//拷贝构造函数MyString(const MyString& other){m_pData = new char[strlen(other.m_pData) + 1];strcpy(m_pData, other.m_pData);}//重载赋值运算符 = MyString operator =(const MyString& other){if (this != &other){if (this->m_pData != NULL){delete m_pData;m_pData = NULL;}m_pData = new char[strlen(other.m_pData) + 1];strcpy(m_pData, other.m_pData);}return*this;}//重载+运算符MyString operator +(const MyString& other)const{MyString newstring;if (this->m_pData == NULL){newstring = other;}else if (other.m_pData == NULL){newstring = *this;}else{newstring.m_pData = new char[strlen(this->m_pData) + strlen(other.m_pData) + 1];strcpy(newstring.m_pData, this->m_pData);strcat(newstring.m_pData, other.m_pData);}return newstring;}//重载下标运算符char& operator [](unsigned int index){//进行下标的判断,看它是否有效if (index >= 0 && index < strlen(this->m_pData)){return this->m_pData[index];}}friend ostream& operator << (ostream& os, MyString& str);~MyString(){if (this->m_pData != NULL){delete this->m_pData;this->m_pData = NULL;}}};//重载输出运算符<<ostream& operator << (ostream& os, MyString& str){os << str.m_pData;return os;}int main(void){MyString str("Hello string");MyString str1;str1 = str;cout << str1 << endl;cout << str << endl;cout << str[2] << endl;return 0;}
阅读全文
0 0
- C++string类的简单实现
- c++string类的简单实现
- string类的简单实现
- string类的简单实现
- String 类的简单实现
- 简单的string类实现
- string类的简单实现
- string 类的简单实现
- 简单string 类的实现
- 简单的String类实现
- string类的简单实现
- String类的简单实现
- [C++]String类的实现
- [C++]String类的实现
- [C++]String类的实现
- C++String类的实现
- 【c++】string类的实现
- C++string类的实现
- springmvc数据的格式化及数据校验
- codeforces小做
- 影响数据库性能的六大因素
- geotools中泰森多边形的生成
- plsql连接非本地数据库
- C++string类的简单实现
- Symmetry
- vector的使用
- Exadata基本知识
- 日期计算
- 为知笔记Linux一键安装版
- 离散余弦变换(Discrete Cosine Transform)
- Intel RDT特性详解
- Java基础(二)隐式参数this与内存分析