3
class ARouter {
    enum directions {north, neast, east, seast, south, swest, west, nwest};
    static directions gon[] = {north, neast, nwest, east, west, seast, swest, south};
};

こんにちは、上記のコードの問題を知っている人はいますか?

VC++2008Ex の 2 行目に 2 つのエラーが表示されます。

エラー C2059: 構文エラー: '{'

エラー C2334: '{' の前に予期しないトークンがあります。見かけの関数本体をスキップする

4

1 に答える 1

5

そのようなクラス内で変数を定義することはできません。

次のようにする必要があります。

class ARouter {
    enum directions {north, neast, east, seast, south, swest, west, nwest};
    static directions gon[];
};

ARouter::directions ARouter::gon[] = {north, neast, nwest, east, west, seast, swest, south};

宣言はクラス本体に入ります。定義は外にあります。通常、クラス本体をヘッダーに配置し、定義をソース ファイルに配置することに注意してください。

于 2011-08-07T19:23:08.237 に答える