クラス作ってクラス関数を作って名前つけることが日常ですが、この名前ってどうしようか悩みます。このロジックは指示かメッセージか振るまいか。
仕事で VBA を触っているのですが、同じプログラミング言語でもこれを C/C++ によるゲームプログラミングに生かすには若干の基礎知識が必要かもしれないと思いました。
CakePHP のプロマネとリードデベロッパーが新たに立ち上げた Lithium ( Lithium: the most rad php framework ) というプロジェクトがありまして、ゲームとは関係ないので詳しくは述べませんが、状況によっては追っかけてみるのも面白いと思います。
データの取得はクラスメソッド、レコードはインスタンスに対応するようになったみたいで、すっきりした印象があります。よくわからんのですが DAO のパターンに近いのでしょうか?
…と、まぁ、こういった感じで、今まで使っていた技術を交換したくなったり、状況に逆らえず交換しなければならなくなることがあります(どういう経緯かわからないけどお客さんに指定されてるとか)。ただ、今までのノウハウや資産が生きないのもよくないことと思います(例が悪かったです、 CakePHP → Lithium だったら生きそうな資産が多くあります)。なんとか一個人でも力になれる枯れさせるための活動ができないものか日々足りない脳味噌を回す日々…
そんな経緯から、どんなライブラリ、どんなフレームワーク、どんな言語を使うケースでも、「こういうの毎回書いているなぁ…」と嫌になるロジックをまとめようかと思うようになりました(ちなみに、これはゲームにも関係するのですが、このサイトではやりません)。
前ふり終わり。
まどかの同人作品ですが、小型パソコンを持ち歩くことができるようになったおかげか、やっとこさ具体的な名前を決める段階までやってまいりました。
良い機会なので、命名に関してこの際、考えを改めることにしました。
メルマガではヘッダファイルを説明するのに名刺にたとえましたが、レストランのメニューにたとえている情報源がありまして、断然そっちの方がわかりやすいと感じました。
…というのも、以下のコードがエラーになるのです。
public class SomeClass { private var member:String; // ↓オーバーロードできねぇ! public function set member(member:String):void { this.member = member; } // ↓こっちも! public function get member():String { return this.member; } }
ECMA の新しい仕様は全く把握しておりません。 getter, setter といっても関数の延長なんでしょうか。
関数の引数にデフォルト値を設定するためには、関数の仮引数に初期値を併記します。
関数を指し示す変数を作るためには、関数型のポインタを作ります。
自分で作った関数の存在を他の関数やファイルに教えるためには、関数のプロトタイプ宣言を記述します。