string的部分实现
来源:互联网 发布:动漫神作 知乎 编辑:程序博客网 时间:2024/05/18 08:20
#include <iostream>using namespace std;class String{public:String(const char *str = NULL); // 通用构造函数String(const String &another); // 拷贝构造函数~ String(); // 析构函数String& operator =(const String&);// 赋值函数friend ostream& operator << (ostream&, const String& s);friend istream& operator>>(istream& in, String& s);friend String operator+(const String&,const String&);bool operator==(const String &);private:char *m_data; // 用于保存字符串};String::String(const char *str){ if (str == NULL) m_data = NULL; else { m_data = new char[strlen(str)+1]; strcpy(m_data,str); }}String::String(const String &another){ m_data = new char[strlen(another.m_data)+1]; strcpy(m_data,another.m_data);}String::~String(){if(m_data != NULL){delete []m_data;m_data = NULL;}}bool String::operator==(const String &s){if (strcmp(this->m_data,s.m_data)) return true;return false;}String & String::operator=(const String &rhs){ if (*this == rhs) return *this; delete []m_data; m_data = NULL; m_data = new char[strlen(rhs.m_data)+1]; strcpy(m_data,rhs.m_data); return *this;}ostream& operator << (ostream& out, const String& s){ if(s.m_data) out << s.m_data << endl; return out;}istream& operator>>(istream& in, String& s){char q[1000];in >> q; s.m_data = new char[strlen(q)+1]; strcpy(s.m_data,q); return in;}String operator+(const String& lhs,const String&rhs){String *ret = new String(lhs);strcat(ret->m_data,rhs.m_data);return *ret;}int main(){ String s ; cin >> s; String s1; cin >> s1; String s2 = s+s1;//this sentence has question , but i don't know why cout << s2;}
还是有问题的,待改动!
- string的部分实现
- String类的部分实现
- String类的部分实现
- 关于String类的部分实现
- String类的部分实现和测试
- 模拟实现部分string函数
- string.h中库函数的实现代码(部分)
- STL的部分实现
- STL部分的实现
- string型字符串的部分合并
- string.h头文件的部分函数
- Java String的部分源码学习
- JAVA中的String类的部分方法
- 《The+C+++Programming+Language》第十一章String部分实现
- string class的实现
- 简单的string实现
- string.cpp的实现
- class String 的实现
- 嵌入式系统基础 2
- 嵌入式系统基础 3
- Perfect Cubes(zoj_1331-————the beginner problem)
- 关于linux的链表之list_entry和内存对齐
- vs2008 opencv 2.1 编译环境搭建
- string的部分实现
- 前后台页面跳转方式搜集
- Week 2: Project Planning
- 编译和安装busybox到android手机
- CSMA/CD 和 CSMA/CA 之原理
- IE6 相对定位容器中的绝对定位BUG
- DevExpress 动态创建实例化类 (xpo)
- 论对立同一性
- Week 3: Project Setup