實現string類是一道常見初級c++程式設計師的面試題,下面來具體介紹實現過程。
已知string的原型**如下。從下圖程式可以看出,string類的底層是乙個字元指標。
class string
(1)普通建構函式實現過程
string::string(const char* str)
else
}
普通建構函式注意的是,傳入的是個char*型別的字串。如果傳入的str是個空字串,那麼直接用\0賦值。
(2)string類的析構函式
string::~string()
}
(3)拷貝建構函式
string::string(const
string &another)
m_data=new char[strlen(another.m_data)+1];
strcpy(m_data,another.m_data);
}
拷貝建構函式裡要注意的是,傳入的引數是乙個常引用,這樣可以不用增加乙個棧變數和引數內容可以保持不變,不被修改。
(4)賦值函式
string::string::operator =(const string &another)
else
}return *this;
}
賦值函式需要注意的是,如果傳入的引數內容已與本身一致,則不需要賦值(常量區特性)。
(5)字串連線
string& string::operator +(const string &another)
else
if(!m_data)
else
return newstring;
}
字串連線函式裡面分三種情況:傳入引數為空,本身為空,或兩者都不為空。
(6)判斷相等
bool string::operator ==(const string &another)
else
}
先判斷長度是否一致,再判斷內容是否相等。
(7)返回長度
int string::getlength()
string類的實現
參考c primer.string類的實現,清翔兔 06,jan.includeusing namespace std class string string void private char m data inline string string const char str inline st...
String類的實現
學習資料結構寫了乙個string的類,貼出來求指教 ifndef string h h define string h h include include include define defaultsize 128 class string maxsize為傳入引數的string string c...
string類的實現
include using namespace std class string public string const char str 0 普通建構函式 string const string other 拷貝建構函式 string void 析構函式 string operator const...