程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> strcpy 與 string 的構造函數

strcpy 與 string 的構造函數

編輯:C++入門知識

char *strcpy(char *strDest, const char *strSrc)     class String { public: String(const char *str = NULL); //通用構造函數 String(const String &another); //拷貝構造函數 ~String();  //析構函數 String &operator=(const String &rhs); //賦值操作符 private: char *m_data;   };     char *strcpy(char *strDest, const char *strSrc) { if(strDest==NULL || strSrc==NULL) { return NULL; } if(strDest==strSrc) { return strDest; } char* strResult = strDest; while((*strDest++ = *strSrc++)!='\0') ; return strResult; }         String::String(const char *str) { if(str == NULL) { m_data = new char(1); m_data[0]='\0'; } 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::operator=(const String &rhs) { if(&rhs==this) { return *this; } delete[] m_data; m_data = new char(strlen(rhs.m_data)+1); strcpy(m_data,rhs.m_data); return *this; }     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; }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved