継承が複雑なプロジェクトのデバッグ方法

inheritance-debug.png

このクラスの親はなんだっけ。。。??
継承関係な複雑なソースコードを読むのは大変です。
いくつか便利な関数をメモします。

継承関係を調べるコード

C++ python java Objective-C
typeid(変数名).name() type(obj) obj.getClass().getName()パッケージ名含む,getSimplaName()クラス名のみ NSStringFromClass([object class])
Swift javascript
変数名.dynamicType typeof(変数名)

そのクラスなのかどうかboolで判定する方法

C++ python java ObjectiveC
typeid(クラス名) isinstance(obj, クラス名) obj instanceof クラス名 isKindOfClass クラス名
Swift
変数名 as? クラス名

C++ typeid 使い方

bool isThisclass = typeid(変数名) == typeid(クラス名);

class instance instanceof type

サポートサイト Wikidot.com classinstanceinstanceoftype