使用環境はwindows8.1、visual studio 2013 expresです。
現在、「龍神録プログラミングの館」様を参考にSTG作成の勉強中なのですが、12章で躓いています。
12章では一部関数ポインタを使用しており、クラス内でそれを実装するにはメンバ関数ポインタにしないといけないとのことで・・・
ロベール様のサイトを参考に作成してみたところ、クラス内で以下のコードができました。
class ENEMY{
private:
static enm enemy[ENEMY_MAX]//敵用構造体の作成
static double rang(double ang){}//省略
static void enemy_pattern0(int i){}//省略
static void enemy_pattern1(int i){}//省略
static void enemy_pattern2(int i){}//省略
// 中略
static void enemy_pattern10(int i){}//省略
void (ENEMY::*enemy_pattern[ENEMY_PATTERN_MAX])(int) = {
ENEMY::enemy_pattern0,ENEMY::enemy_pattern1,ENEMY::enemy_pattern2,ENEMY::enemy_pattern3,
ENEMY::enemy_pattern4,ENEMY::enemy_pattern5,ENEMY::enemy_pattern6,ENEMY::enemy_pattern7,
ENEMY::enemy_pattern8,ENEMY::enemy_pattern9,ENEMY::enemy_pattern10};
}
エラー::型"void(*)(int)"の値を使用して型"void(ENEMY::*[11])(int)"のエンティティを初期化することはできません
と表示されます。
いくつか考えられるパターンを試してみましたが、結局コンパイルが通るものはできませんでした。
どのように変えれば、うまく使用できるようになるでしょうか。
回答よろしくお願いします。
以下、試してみたパターンです。
要素の名前空間を省略する、その状態で「&」を頭につける、名前空間を省略せずに「&」をつける
→同様のエラー
関数ポインタの名前空間を省略する、その状態で上記の状態を追加する
→コンパイル時に
error C2536 クラス、構造体、共用体のメンバーは、初期化できません
が表示される。
また、全く触れていないmsxml.hファイルにも構文エラーが発生する