通知
すべてクリア
Topic starter
2006年12月8日 12:45 AM
開発環境:VS2005,VC++
クラス内で、2次元配列の宣言と同時に初期化をおこなおうとすると
下記のエラーが出ます。
error C2059: 構文エラー : '{'
error C2334: '{' の前に予期しないトークンがありました。関数の本体は無視されます
error C2065: 'FIELD_MAP' : 定義されていない識別子です。
宣言と同時に初期化は不可能なのでしょうか?
2006年12月8日 9:23 AM
どんなコードを書いたのかわからんのでアドバイスのしようがない。
とりあえず妄想してみる。
1.静的配列は初期化できるよ。ただしクラス定義内では静的配列は宣言だけとなるので
--hoge.h--
class hoge {
static int const table[];
...
};
--hoge.cpp--
int const hoge::table[]={ ... };
となる。
2.非静的メンバー配列はデフォルトコンストラクトだけが可能
class piyo {
int data1[10]={1,2,3...}; // だめ
int data2[10];
public:
piyo() /* data2 等はデフォルトコンストラクトされる */ {
data2[0]=99; data2[1]=12; ... // これは初期化ではなく代入
}
};