什麼意思return語句++
未能提供包含返回處於錯誤
一個循環結束後返回 「C++底漆第五」,295頁?
尤其是,編譯器沒有檢測到這個錯誤,運行時發生了什麼是未定義的。
我用書樣本,如:(vs2013)
#include "stdafx.h"
#include "iostream"
#include "string"
using std::string;
bool str_subrange(const string &str1, const string&str2) {
if (str1.size() == str2.size())
return str1 == str2;
auto size = (str1.size() < str2.size()) ? str1.size() : str2.size();
for (decltype(size)i = 0; i != size; ++i) {
if (str1[i] != str2[i])
return false;
else
return true;
}
}
int _tmain(int argc, _TCHAR* argv[]) {
if (str_subrange("lyc", "talent"))
std::cout << "yes" << std::endl;
else
std::cout << "nope" << std::endl;;
system("pause");
return 0;
}
它運作良好,我想知道哪些情況是「回報」是必須的。
嘗試調用'str_subrange(「」,「anything」)''。 – timrau 2014-11-05 03:55:52
請注意,你的函數只會比較'str [0]'和'str [1]' - 在第一次迭代中返回。 – GingerPlusPlus 2014-11-05 07:36:51