クラス内で2次元配列の宣言と同時に初期化 – プログラミング – Home

クラス内で2次元配列の宣言と同時に初期...
 
通知
すべてクリア

クラス内で2次元配列の宣言と同時に初期化


color
 color
(@color)
ゲスト
結合: 19年前
投稿: 8
Topic starter  

開発環境:VS2005,VC++

クラス内で、2次元配列の宣言と同時に初期化をおこなおうとすると
下記のエラーが出ます。

error C2059: 構文エラー : '{'
error C2334: '{' の前に予期しないトークンがありました。関数の本体は無視されます
error C2065: 'FIELD_MAP' : 定義されていない識別子です。

宣言と同時に初期化は不可能なのでしょうか?


引用解決済
トピックタグ
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 22年前
投稿: 830
 

どんなコードを書いたのかわからんのでアドバイスのしようがない。
とりあえず妄想してみる。

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; ... // これは初期化ではなく代入
}
};


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました