かなり久しぶりの更新。
勉強ばかりでプログラミングはあまりやってなかったからな~。
とりあえず、C++をひと通り勉強できたので、クラス化しながらゲームを作成中。
でも手間がかかるかかる。まだクラス化だけで、ゲーム自体作ってないし。
まず困ったのは、分割コンパイルの方法。
例えば、.hファイルにこう書くとエラーになっちゃいます。
関数の複数定義でエラーが出てしまいました。
クラス内に書くしか無いのか?と思っていたら実はinlineを付ければいいということが判明。
これを知らなくて、かなり悩んでました。
これですっきり書けるようになるはず。
ゲームをC++で作成してみたい
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
Re: ゲームをC++で作成してみたい
分割コンパイルって、コンパイルに時間がかかって困るからやるものだと思うのです。
なので困ってないのならやらなくても良い気がします。
グローバル変数やインライン関数使いまくるとちょっとの変更でフルコンパイルしなければならなくなります。
フルコンパイルすると30分とか掛かるプロジェクトだとデバッグがちっとも進まなくなります。
仕事でそんなコード書くと叱られます。
デスマーチです。
なので困ってないのならやらなくても良い気がします。
グローバル変数やインライン関数使いまくるとちょっとの変更でフルコンパイルしなければならなくなります。
フルコンパイルすると30分とか掛かるプロジェクトだとデバッグがちっとも進まなくなります。
仕事でそんなコード書くと叱られます。
デスマーチです。
Re: ゲームをC++で作成してみたい
>>softyaさん
inlineの意味は知っています。関数をインライン化(マクロ化と似た事をする)して、動作を早めるんですよね。
記述の少ない関数には効果があり、記述の多い関数には使うべきではないとか。
この書き方を使うのは、記述の少ないクラスだけにしています。
記述の少ないクラスをわざわざcppとhに分割するのは面倒だったので。
記述が多いクラスはちゃんと分割していますよ。
>>ISLeさん
私は分割はするべきだと思っています。その方が後で、見た時分かりやすくなるので。
1回、分割なしでゲームを作ったことがありますが、記述が増えるにつれ分かりづらくなってしまいました。
関数で分割してもその関数を探すのが、面倒になっちゃいます。
inlineの意味は知っています。関数をインライン化(マクロ化と似た事をする)して、動作を早めるんですよね。
記述の少ない関数には効果があり、記述の多い関数には使うべきではないとか。
この書き方を使うのは、記述の少ないクラスだけにしています。
記述の少ないクラスをわざわざcppとhに分割するのは面倒だったので。
記述が多いクラスはちゃんと分割していますよ。
>>ISLeさん
私は分割はするべきだと思っています。その方が後で、見た時分かりやすくなるので。
1回、分割なしでゲームを作ったことがありますが、記述が増えるにつれ分かりづらくなってしまいました。
関数で分割してもその関数を探すのが、面倒になっちゃいます。
Re: ゲームをC++で作成してみたい
回りくどく書いてしまいましたが、統合開発環境(IDE)やmakeユーティリティを使って開発するとき、
・cppファイルの変更は、そのファイルだけをコンパイルし直してフルリンク
・hファイルの変更は、そのファイルをインクルードしているファイルをすべてコンパイルし直してフルリンク
になるというのを頭の片隅にでも置いといてもらえれば幸いです。
・cppファイルの変更は、そのファイルだけをコンパイルし直してフルリンク
・hファイルの変更は、そのファイルをインクルードしているファイルをすべてコンパイルし直してフルリンク
になるというのを頭の片隅にでも置いといてもらえれば幸いです。