我想自己写一个实现类似MFC中的 CString str= "xxxx" 功能的类,但是怎么都写不好,请高手帮帮忙;

解决方案 »

  1.   

    operator=
    再在函数里实现你的功能
      

  2.   

    这样好像不可以吧HString& HString::operator =(const HString& other)
    { if(m_data==other.m_data) {
    return *this;
    } delete[] m_data; int len = strlen(other.m_data);
    m_data= new char[len+1];
    strcpy(m_data,other.m_data); return *this;}不能实现HString str = "xxx";啊,编译会出错的。
      

  3.   

    HString& HString::operator =(const char* other) 
    { if(m_data==other.m_data) { 
    return *this; 
    } delete[] m_data; int len = strlen(other.m_data); 
    m_data= new char[len+1]; 
    strcpy(m_data,other.m_data); return *this; } 
      

  4.   

    本帖最后由 greatws 于 2008-09-19 20:26:26 编辑
      

  5.   

    楼主为什么要实现这个类呢?如果不是MFC的程序,完全可以用basic_string来替代。如果非要写:
    HString& HString::operator =(const char* other) 
    { if(m_pData == other) 

    return *this; 
    } delete[] m_data; int len = strlen(other); 
    m_data= new char[len+1]; 
    _tstrncpy(m_data, other,len); return *this; } 
      

  6.   

    方法一:
    HString()
    HString& HString::operator =(const char* other)方法二:
    HString(const char* other)
    HString& HString::operator =(const HString& other)