0
class A
{
public:
static bool S(int);
static string str;
static int integer;

};

bool A::S(int)
{
   str+="A";

}

当我构建程序时,发生错误:“str”未声明的标识符。

4

2 回答 2

2

暂时忽略类型未定义,即使int仅使用 s,您仍然会收到此错误。

您看到的错误是因为您缺少静态变量的定义。你只声明了它。

 string A::str = "initial value"; 

请参阅:定义和声明之间有什么区别?

于 2013-02-04T22:41:57.563 回答
1

可能你有不止一个错误,而你关注的那个是最不重要的:

  • 错误第 5 行:string未命名类型
  • 错误第 12 行:str未声明。

未定义,因为用于定义它的str类型不存在。

解决方案是添加

#include <string>
using namespace std;

在文件的开头(不是我推荐该using行,但那是另一个故事)。

您应该始终将注意力集中在编译器问题的第一个错误上。但是一些流行的 IDE 值得注意的是对它们进行重新排序。

于 2013-02-04T22:40:48.613 回答