我有一个问题。当我尝试构建以下代码时,我得到:
'keywords' does not name a type
...
'whitespace' does not name a type
第 18-19 行和第 22-24 行。有人可以帮忙吗?这是代码。
/*
* cpp2html.h
*
* Created on: Mar 6, 2014
* Author: vik2015
*/
#ifndef CPP2HTML_H
#define CPP2HTML_H
#include <string>
#include <vector>
#define VERSION "0.1a"
using namespace std;
vector<string> keywords;
keywords.push_back("for");
keywords.push_back("white");
vector<string> whitespace;
whitespace.push_back("\n");
whitespace.push_back("\t");
whitespace.push_back(" ");
#endif
您不能在全局范围内使用任意表达式(例如函数调用),只允许您的声明。
您拨打的电话push_back
必须在一个函数中,也许在main
。或者,如果您想在定义这些对象时对其进行初始化,您可以在 C++11 中执行此操作:
std::vector<std::string> keywords{ "for", "white" };
或者 C++03 中的这个:
inline std::vector<std::string> getKeywords()
{
std::vector<std::string> keywords;
keywords.push_back("for");
keywords.push_back("white");
return keywords;
};
std::vector<std::string> keywords = getKeywords();
另外,切勿将using namespace std;
在标题中。它会影响包含标头的所有代码,即使该代码不需要该 using 指令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)