C++のクラスにObjective-Cの変数を持たせたい

cocos2d-xでiOS用のアプリを作っていると、C++のクラスにObjective-Cのクラスをメンバ変数として定義したい、というケースがある。

たとえば、Objective-Cで記述されたクラスObjCがあるとする。
これをC++で記述するクラスCppのメンバ変数として定義したい場合。
できることなら、Cpp.hに

と記述したいところだけど、ヘッダファイルにはC++とObjective-Cとを混在させられないらしく、できない。
そこで内部クラスというものを利用してみる。

この内部クラスInnerの定義はソースファイルの中に記述できる点がミソだ。

Cpp.mm

みたいな感じ。

基本的な考え方はこれでいいんじゃないかと思う。
なにか問題などあればご指摘ください。


コメントを残す