C++函数声明错误;未声明的标识符
C++ function declaration error; undeclared identifier
背景:
通过 Bjarne Stroustrup,使用 C++ 的编程原理和实践,第 2 版工作。我正在尝试这个 4.6.4。我在各个方面都坚持这一点,例如sort 和 vector 不像 txt 书中那样工作:
sort()
vector<string> bad_word_list = {"buck", "Buck", "idiot"};
我的系统:
xcode6.3.2
C++ 标准库 - libc++(支持 C++ 11 的 LLVM C++ 标准库)
#include "std_lib_facilities.h"
int main()
{
vector<string> words;
for (string temp; cin>>temp;) {
words.push_back(temp);
cout << "Number of words: "<<words.size()<<'\n';
}
sort(words.begin(), words.end());
for (int i=0; i<words.size(); ++i) {
int bad_word;
bad_word = check_word(words[i]); // <----
if (bad_word == 1) {
cout << "BEEP";
} else
cout << words[i] << '\n';
}
return 0;
}
int check_word(string x)
{
vector<string> bad_word_list;
bad_word_list.push_back("duck");
for (int i=0; i<bad_word_list.size(); ++i) {
if (x == bad_word_list[i]) {
return 1;
}
}
return 0;
}
当前的问题是 check_word 作为未声明的标识符出现。当我删除 main 中的所有代码并直接调用 check_word 时,仍然会发生这种情况。
注意:当我输入 check_word 时,自动 prompt/filler 会检测该功能。
使用前必须声明check_word。
背景: 通过 Bjarne Stroustrup,使用 C++ 的编程原理和实践,第 2 版工作。我正在尝试这个 4.6.4。我在各个方面都坚持这一点,例如sort 和 vector 不像 txt 书中那样工作:
sort()
vector<string> bad_word_list = {"buck", "Buck", "idiot"};
我的系统: xcode6.3.2 C++ 标准库 - libc++(支持 C++ 11 的 LLVM C++ 标准库)
#include "std_lib_facilities.h"
int main()
{
vector<string> words;
for (string temp; cin>>temp;) {
words.push_back(temp);
cout << "Number of words: "<<words.size()<<'\n';
}
sort(words.begin(), words.end());
for (int i=0; i<words.size(); ++i) {
int bad_word;
bad_word = check_word(words[i]); // <----
if (bad_word == 1) {
cout << "BEEP";
} else
cout << words[i] << '\n';
}
return 0;
}
int check_word(string x)
{
vector<string> bad_word_list;
bad_word_list.push_back("duck");
for (int i=0; i<bad_word_list.size(); ++i) {
if (x == bad_word_list[i]) {
return 1;
}
}
return 0;
}
当前的问题是 check_word 作为未声明的标识符出现。当我删除 main 中的所有代码并直接调用 check_word 时,仍然会发生这种情况。
注意:当我输入 check_word 时,自动 prompt/filler 会检测该功能。
使用前必须声明check_word。