静态功能

时间:2013-02-04 22:24:32

标签: c++ static

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

};

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

}

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

2 个答案:

答案 0 :(得分:2)

忽略该类型未定义的一秒钟,即使您仅使用int,仍会出现此错误。

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

 string A::str = "initial value"; 

请参阅:What is the difference between a definition and a declaration?

答案 1 :(得分:1)

可能您有多个错误,而您关注的错误则是最不重要的错误:

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

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

解决方案是添加

#include <string>
using namespace std;

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

您应始终将注意力集中在编译器发出的第一个错误上。但是一些流行的IDE在重新排序时值得注意。