C++中的String类

来源:互联网 发布:开户数据 编辑:程序博客网 时间:2024/06/04 19:49

String 类的构造,复制构造,运算符重载和析构函数


#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string.h>using namespace std;class String{public:String():_pStr(new char[1]){*_pStr = '\0';}String(char* pStr){_pStr = new char[strlen(pStr) + 1];strcpy(_pStr, pStr);}String(const String& s){_pStr = new char[strlen(s._pStr) + 1];strcpy(_pStr, s._pStr);}/*String (const String s){    String Tmp(s);swap(_pStr, Tmp);// _pStr = NULL;*/String operator=(const String& s){if (this != &s){char* tmp = new char[strlen(s._pStr) + 1];strcpy(tmp, s._pStr);delete[] _pStr;_pStr = tmp;}return *this;}~String(){if (_pStr != NULL){delete[] _pStr;_pStr = NULL;}}friend void PrintString(String s);private:char* _pStr;};void PrintString(String s){while(*(s._pStr) != '\0'){cout << *(s._pStr) << endl;s._pStr++;}}void FunTest(){String s1;String s2("zk");String s3(s2);String s4;s4 = s3;PrintString(s2);}int main(){FunTest();system("pause");return 0;}


0 0
原创粉丝点击