class A
{
public:
static bool S(int);
static string str;
static int integer;
};
bool A::S(int)
{
str+="A";
}
当我构建程序时,会发生错误:“str”未声明的标识符。
答案 0 :(得分:2)
忽略该类型未定义的一秒钟,即使您仅使用int
,仍会出现此错误。
您看到的错误是因为您缺少静态变量的定义。您只有声明。
string A::str = "initial value";
请参阅:What is the difference between a definition and a declaration?
答案 1 :(得分:1)
可能您有多个错误,而您关注的错误则是最不重要的错误:
string
未命名类型str
未声明。 str
未定义,因为用于定义它的类型不存在。
解决方案是添加
#include <string>
using namespace std;
在文件的开头(不是我推荐using
行,但那是另一个故事)。
您应始终将注意力集中在编译器发出的第一个错误上。但是一些流行的IDE在重新排序时值得注意。