『C言語によるオブジェクト指向プログラミング入門』を参考に、以下のようなコードを書いています。「第一引数に構造体を与える関数を用意してあげれば、オブジェクト指向っぽくプログラミングできるだろう」という発想です。
ポリモルフィズム的なのを考えると、マクロでがんばるとか、自前でトレイトオブジェクト的な実装するとか必要そうな気がしているのですが、今のところややこしそうなので目を瞑ります。
- 作者: 坂井弘亮
- 出版社/メーカー: 翔泳社
- 発売日: 2009/12/15
- メディア: 大型本
- 購入: 3人 クリック: 41回
- この商品を含むブログ (4件) を見る
#include "Player.h" #include <gb/gb.h> int main(void) { Player player; // 初期値 Player_Init(&player, 0, 0); for (;;) { Player_Move(&player, 1, 1); delay(100); } }
実は以下のように「 Player
の構造体を返す関数」を書こうとしたのですが、 Function cannot return aggregate. Func body ignored
というようなエラーが出てしまいました。
Player player = Player_Init(0, 0);
以下のページを見る限り、「gbdkを利用するために利用しているコンパイラが古すぎて、構造体を返す関数に対応していない」ようですね。これはつらい。
$ lcc -v lcc $Id: lcc.c,v 1.6 2001/10/28 18:38:13 michaelh Exp $