class A
{
public:
static bool S(int);
static string str;
static int integer;
};
bool A::S(int)
{
str+="A";
}
当我构建程序时,发生错误:“str”未声明的标识符。
暂时忽略类型未定义,即使int
仅使用 s,您仍然会收到此错误。
您看到的错误是因为您缺少静态变量的定义。你只声明了它。
string A::str = "initial value";
请参阅:定义和声明之间有什么区别?
可能你有不止一个错误,而你关注的那个是最不重要的:
string
未命名类型str
未声明。未定义,因为用于定义它的str
类型不存在。
解决方案是添加
#include <string>
using namespace std;
在文件的开头(不是我推荐该using
行,但那是另一个故事)。
您应该始终将注意力集中在编译器问题的第一个错误上。但是一些流行的 IDE 值得注意的是对它们进行重新排序。