簡化的string類的模擬

2021-10-03 09:24:08 字數 1267 閱讀 7650

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

class string ;

// 左移運算子過載

ostream &operator<<(ostream &os, const string &str)

// 右移運算子過載

istream &operator>>(istream &is, string &str) ;

is >> sztmp;

str.m_ilen = strlen(sztmp);

str.m_pszstr = new char[str.m_ilen + 1];

strcpy(str.m_pszstr, sztmp);

return(is);

}// 預設建構函式

string::string() : m_pszstr(null), m_ilen(0)

// 含參建構函式

string::string(const char *szstr)

}// 含參建構函式

string::string(const string &refstr)

}// 拷貝建構函式

string::string(const string &refstr)

// 賦值操作符過載

string & string::operator=(const string &refstr)

this->m_ilen = refstr.m_ilen;

this->m_pszstr = new char[this->m_ilen + 1];

strcpy(this->m_pszstr, refstr.m_pszstr);

return(*this);

}// +操作符過載

string string::operator+(const string &refstr)

// 操作符過載

char string::operator(int index)

// +=運算子過載

string & string::operator+=(const string &refstr)

else

return(*this);

}// 析構函式

string::~string()

}int main()

(完)

String 類的模擬實現

string 類的模擬實現 一 建構函式使用初始化列表的優點 建構函式的執行分為兩個階段 初始化階段和計算階段,初始化階段先於計算階段 賦值語句 在使用建構函式給資料成員進行初始化時通常有兩種選擇。一是在建構函式後加上冒號,並用初始化列表的方式對成員進行初始化。二是在建構函式體中用賦值語句完成對成員...

string類的模擬實現

說明 有些函式返回的是string 引用 有些是string 值 這取決於返回的物件是函式的區域性變數還是全域性變數。string.hpp include include include using namespace std class string string const string s s...

string類的模擬實現

class string 放n個字元ch的元素 構造 string size t n,char ch str new char n 1 size n capacity n 拷貝建構函式 string const string s size s.size capacity s.size 賦值運算子過載...