string
来源:互联网 发布:最喜欢的一句话知乎 编辑:程序博客网 时间:2024/06/16 11:53
#include <iostream>#include <cstring>#include <cassert>using namespace std;class MyString {public:MyString(const char *str = NULL);MyString(const MyString &str);MyString& operator=(const MyString &str);~MyString();private:char *m_data;friend ostream& operator<<(ostream& out, const MyString & str);friend istream& operator>>(istream& in, MyString & str);};MyString::MyString(const char *str){if(NULL == str){this->m_data = new char[1];assert(this->m_data);*(this->m_data) = '\0';}else{size_t len = strlen(str);this->m_data = new char[len + 1];assert(this->m_data);strcpy(this->m_data, str);}}MyString::MyString(const MyString &str){int len = strlen(str.m_data);this->m_data = new char[len + 1];assert(this->m_data);strcpy(this->m_data, str.m_data);}MyString & MyString::operator=(const MyString &str){if(&str == this){return *this;}//release this original memorydelete [] m_data;m_data = 0;int len = strlen(str.m_data);m_data = new char[len + 1];assert(m_data);strcpy(m_data, str.m_data);return *this;}MyString::~MyString(){delete[] m_data;m_data = 0;}ostream& operator<<(ostream& out, const MyString& str){out << str.m_data;return out;}istream& operator>>(istream& in, MyString& str){in >> str.m_data;if(!in){delete[] str.m_data;str.m_data = 0;str = MyString();}return in;}int main(void){MyString A("hello");cout << A << endl;cin >> A;cout << A << endl;return 0;}
0 0
- string
- String
- String
- string
- string
- String
- string
- String
- string
- string
- string
- string
- String
- String
- string
- string +
- String
- String
- ufldl学习笔记与编程作业:Debugging: Gradient Checking(梯度检测)
- 使用 ODPS-GRAPH 进行变分 EM 推断一例(转载)
- 3.1.4、ObjectARX程序的初始化
- 10g RAC 使用service实现taf
- js判断undefined类型
- string
- HDU2674 N!Again 【数学】
- poj 1308 并查集(判断一组点对是否能够组成树)
- HDU 1711 Number Sequence KMP题解
- 在eclipse下直接部署maven工程缺少jar包问题
- ios--视图控制器视图的装载
- UVa 340 Master-Mind Hints
- sort函数用法详解
- JavaScript学习二 常言的方法整理