構造体に関数を実装する

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

構造体に関数を実装する

投稿記事 by taketoshi » 11年前

昔からC++では構造体に関数を実装出来る事は薄々知っていたが使っていなかった。
SRPGを作っていて構造体自身が自分の変数の状態を維持管理できると便利だと思い、使いどころが閃いたので実装して使っている

隣り合ったユニットが物を交換するとき、どのキャラクターと交換出来て、
自分の周囲に何人の味方キャラクタが居るのかを管理するために作った構造体である。

こんなかんじ

CODE:

//-----------------------------------------------------------------------------
//ItemChangePack構造体 
//説明:
//-----------------------------------------------------------------------------
typedef struct{
	int MaxNumber;
	CCharcterBase *lpChar[4];
	void Initialize(){ for(int i = 0;i < 4;++i){lpChar[i] = NULL;} }
	void SetCharcterNumber(){
		int count = 0;
		for(int i = 0;i < 4;++i) if(lpChar[i] != NULL)count++;
		MaxNumber = count;
	}
}ItemChangePack;
Initialize関数で自身を初期化をし、四方にいるキャラクタのポインタを別関数で取得してSetCharcterNumber関数で人数をメンバ変数に伝えている。
・・・・・すごく便利なのである。構造体は単に色々な型を纏めて扱うだけの代物だと思っていたよ。

コメントはまだありません。