http://blog.sina.com.cn/s/blog_438414c901008xqz.html
vector<string> hcat(const vector<string>& left, const vector<string>& right)
{
vector<string> ret;
string::size_type width1 = width(left) + 1;
vector<string>::size_type i =0, j = 0;
while( i != left.size() || j != right.size()) {
string s;
if(i != left.size())
s = left[i++];
s += string(width1 - s.size(), ' ');
if(j != right.size())
s += right[j++];
ret.push_back(s);
}
}
warning C4715 不是所有的控件路徑都返回值
忘記寫返回語句了。
又碰到了“warning C4715 不是所有的控件路徑都返回值”的錯誤:
原因:自定義函數使用瞭如下的形式
BOOL MyClass::GetValue()
{
if(……)
return 0;
else if(……)
return 1;
}
上面的函數有一個很明顯的漏洞:當if……else if…… 不包括所有的條件在內,也就是說有可能會出現條件不符合if(……),也不符合else if(……)的情況,這時候函數就不知道該返回什麼值了。
解決的辦法:讓if 和else if 包含所有的情況,函數形式寫成
BOOL MyClass::GetValue()
{
if(……)
return 0;
else (……)
return 1;
}
或者,類似下面的形式
BOOL MyClass::GetValue()
{
if(……)
return 0;
return 1;
}
當這種問題出現在返回值爲具體的數據值和指值時,將對之後的運行結果產生不穩定的不可預知的錯誤,總之後果會很嚴重。