【cocos2d-x】interfaceをどうやって作るか?

LINEで送る
Pocket

cppないしcocos2d-xには、
Javaで言うinterfaceクラス、Objective-Cで言うprotocolみたいなものは作成出来ません。



では、そう言ったものを作成したい場合はどうするかと言うと仮想関数なるものを使用します。

仮想関数ってのは修飾子virtualのついた関数の事です。
詳しくはこちらのブログをどうぞ。
修飾子virtualとは?

純粋仮想関数

更にこの仮想関数、宣言部の最後に「=0」を付けてあげると純粋仮想関数と言う関数になります。

この純粋仮想関数はかなり大きい二つの意味を持ちます。

・純粋仮想関数を含むクラスは抽象クラスとなる
・純粋仮想関数を含むクラスの派生クラスでは必ずこれをオーバーライドしなければいけない

つまり、この一番目の性質を利用してinterfaceクラスを作成します。


当然、純粋仮想関数を含むクラスは抽象クラスとなりますのでインスタンス化出来ません。

スクリーンショット 2015-01-04 14.53.22


抽象クラスのallocateは出来ませんぜ
って言ってますね。

つまり、cppでは直接的にインターフェースクラスを定義するのではなく、インスタンス化させないと言った方法で間接的にインターフェースクラスを定義する事になります。

※この「=0」を外してやるとインスタンス化は出来ます。

誰かのお役に立てば。

このブログのcocos記事一覧

LINEで送る
Pocket

Dalt

translimit, Inc. Application Engineer. Twitter: @daiki1003 Facebok: Daiki Asahi

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です