string 구현

class String{
public:
//      
String(const char *str = NULL);
//      
String(const String &other);
//    
String & operator=(String &other) ;
//    
~String(void);
private:
char* m_str;
};

          
//      
String::String(const char* str){
    if(str==NULL) //  str NULL,     {
        m_str = new char[1]; //      
        *m_str = ‘\0′; //   ’\0′
}else{
       str = new char[strlen(str) + 1];//      str  
        strcpy(m_str, str); //  str     m_str 
    }
}
//    
String::~String(){
    if(m_str!=NULL) //  m_str  NULL,     {
        delete [] m_str;
        m_str = NULL;
}
}
//      
String::String(const String &other){
    m_str = new char[strlen(other.m_str)+1]; //      str  
    strcpy(m_str, other.m_str); //  other.m_str     m_str  
}
//    
String & String::operator=(String &other){
    if(this == &other) //    other      ,     {
        return *this
}
    delete [] m_str; //  ,          
    m_str = new char[strlen(other.m_str)+1]; //      str  
    strcpy(m_str, other.m_str); //  other.m_str     m_str 
    return *this;

}

좋은 웹페이지 즐겨찾기