简单的String类实现

来源:互联网 发布:rt809编程器怎么安装 编辑:程序博客网 时间:2024/05/17 03:44
#include <iostream>using namespace std;class String{private:char* m_data;public:String(const char* pStr = NULL);String(const String& another);~String();String& operator = (const String& rhs);};<span style="white-space:pre"></span>//分号别漏掉String::String(const char* pStr){if(pStr == NULL){this->m_data = new char[1];m_data[0] = '\0';}else{this->m_data = new char[strlen(pStr)+1];strcpy(m_data,pStr);}}String::String(const String& another){this->m_data = new char[strlen(another.m_data)+1];strcpy(m_data,another.m_data);}String::~String(){delete[]m_data;}String& String::operator = (const String& rhs){if(this == &rhs)return *this;delete[]m_data;m_data = new char[strlen(rhs.m_data)+1];strcpy(m_data,rhs.m_data);return *this;}int main(){String a("abcdefg");printf("%s\n",a);String b(a);printf("%s\n",b);String c = b;<span style="white-space:pre"></span>//调用复制构造函数printf("%s\n",c);String d = "abcdefg"; //隐式转换printf("%s\n",d);String e = String("abcdefg");printf("%s\n",e);return 0;}输出:abcdefgabcdefgabcdefgabcdefgabcdefg请按任意键继续. . .       

0 0