#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 賦值運算子過載...