-3
#include <iostream>
using namespace std;
class base
{
    static base* mybase;
};
base::mybase = NULL;
char* str = "hello world";
int main()
{
    std::cout<<"hello world"<<std::endl;
    return 0;
}

コード行"base:: mybase = NULL"コンパイラエラーが発生する理由!

4

3 に答える 3

2

タイプも指定する必要があります。のタイプmybaseは次のbase*とおりです。

base* base::mybase = NULL;

これはbase*、 のメンバーでbaseあり、呼び出されるを定義し、mybaseに初期化しNULLます。

于 2013-03-08T12:43:35.690 に答える
2

また、次の行で変数の型を指定する必要があります。

base* base::mybase = NULL;
于 2013-03-08T12:43:47.300 に答える
0

なぜコードbase::mybase = NULLコンパイラ エラーの行!

それは有効な宣言ではないからです。これは (クラス base のプライベート メンバーにアクセスできるコンテキストでは) 有効な代入式ですが、名前空間スコープで式ステートメントを使用することはできません。

静的メンバーの定義を提供するには、次を使用します。

base* base::mybase = NULL;
于 2013-03-08T12:45:11.333 に答える