编写String类
2012-03-26 20:36
246 查看
class String { public: String(const char *src = NULL);//构造函数 String(const String &other);//拷贝构造函数 ~String(void);//析构函数 String & operator =(const String &other);//赋值函数 void ShowString(); private: char *m_data; }; //String 的构造函数 String::String(const char *src) { if(src == NULL)//当初始化串不存在的时候,为m_data申请一个空间存放'\0'; { m_data = new char[1]; *m_data = '\0'; } else//当初始化串存在的时候,为m_data申请同样大小的空间存放该串; { int length = strlen(src); m_data = new char[length+1]; strcpy(m_data,src); } } //析构函数 String::~String() { delete [] m_data;//析构函数释放地址空间 } //拷贝构造函数 ,功能与构造函数类似 String::String(const String &other) { int length = strlen(other.m_data); m_data = new char[length + 1]; strcpy(m_data,other.m_data); } //赋值函数 String& String::operator = (const String &other) { if(this == &other)return *this;//当地址相同时,直接返回 delete [] m_data;//当地址不同时,删除原来申请的空间,重新开始构造 int length = strlen(other.m_data); m_data = new char[length + 1]; strcpy(m_data,other.m_data); return *this; } void String::ShowString()//由于m_data是私有成员,对象只能通过public成员函数来访问 { cout<<this->m_data<<endl; } int main() { String s1; char *p = "ABCDEFGH"; String s2(p); s1.ShowString(); s1 = s2; s2.ShowString(); system("pause"); return 0; }
相关文章推荐
- C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符
- String 类的编写:1.各种运算符的重载 2.用引用计数来实现String类
- 编写String类的构造函数、析构函数以及赋值函数(C++面试题)
- 编写string类的构造函数、拷贝构造函数、析构函数、赋值函数
- 根据C++ Primer 5th编写的自定义String类
- 编写String类的构造函数、析构函数、拷贝构造函数、赋值函数
- 编写String类的构造函数、析构函数以及赋值函数(C++面试题)
- C++基础之编写String类(拷贝构造函数)
- c++常见题目,编写string类
- String类的编写
- 编写String类的构造函数,析构函数,赋值函数
- String类的编写
- string类的编写
- string类的基本函数编写
- 有没有不用string类就可以实现动态的输入字符串,编写时不限定字符个数!!急急!!!
- C++primer学习:拷贝控制(6):编写简化的string类
- 编写String类的构造、析构、赋值和拷贝构造函数
- 编写string类的构造、拷贝构造、析构、拷贝赋值函数
- C++11之右值引用(三):使用C++11编写string类以及“异常安全”的=运算符
- 编写String类的普通构造函数、拷贝构造函数、析构函数、赋值函数