程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> String類的實現

String類的實現

編輯:關於C語言

#include <cstdlib>
#include <string.h>
#include <iostream>
using namespace std;
class String
{
public:
                 String(const char *str = NULL);//普通構造函數
                 String(const String &other);//拷貝構造函數
                 ~String();//析夠函數
                 String& operator =( const String &other);
                 friend ostream& operator<<(ostream& os, const String & s);
private:
                 char *data ;//用於保存數據字符串
};
ostream& operator<<(ostream& os,const String& s)
{
                 int len = strlen(s.data );
                 for(int i=0;i<len;i++)
                {
                                os<<s. data[i];
                }
                 return os;
}
String::String( const char *str)
{
                 if(str == NULL)
                {
                                 data = new char[1];
                                 if(data != NULL)
                                 data = '\0' ;
                }
                 else
                {
                                 int len = strlen(str);
                                 data = new char[len+1];
                                 if(data != NULL)
                                strcpy( data,str);
                }
}
String::String( const String &other)
{
                 int len = strlen(other.data );
                 data = new char[len+1];
                 if(data != NULL)
                strcpy( data,other.data );
}
String::~String()
{
                 delete [] data ;
}
String& String::operator=( const String &other)
{
                 if(this == &other)
                                 return *this ;
                 delete [] data ;
                 data = NULL;
                 int len = strlen(other.data );
                 data = new char[len+1];
                 if(data != NULL)
                strcpy( data,other.data );
                 return *this ;
}
########################################################################################
int main( void)
{
                 String s1("string" );
                 String s2(s1);
                cout<< "s1:"<<s1<<endl;
                cout<< "s2:"<<s2<<endl;
                  
                 return 0;
}


本文出自 “至簡” 博客,請務必保留此出處http://zhijian.blog.51cto.com/2057586/1268995

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