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 に答える