我剛剛遇到好幾個在線例子。C++:高級函數定義
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, elems);
return elems;
}
斯普利特正在調用裏面的其他分裂。這是否允許?這兩個函數具有相同的名稱,C++能夠根據參數的數量選擇使用哪一個?
此外,我想定義類Event的對象如何用字符串表示。這是一段代碼,爲我的作品:
inline ostream & operator << (ostream & Str, Event const & event)
{
//do stuff here
return Str;
}
除了在線,我不明白這個聲明是如何工作的(&,運營商,< <,等...)
謝謝你爲你的時間。
「教我C++」不是一個特定的編程問題。閱讀教程。 – 2013-06-05 21:20:42
爲了理解第一個例子查找函數重載,那麼當你明白這一點時,查閱操作符重載來理解第二位。 – Joel
這裏是Google的一個開始:1)函數重載2)轉換構造函數。 – andre