C++でクラス名を判定する

プログラミングをしていると、時々クラス名を取得したいときがあります。
MFCの「CObject」の派生クラスだと、CObject::IsKindOf で判定することができます。

では、普通のクラスの場合は、どうしたら良いのか?
調べると、下記のコードのように typeid を使うことで、普通のクラス名の取得・判定をすることができることがわかりました。
#include "typeinfo.h"
 
	// クラス名を取得
	const type_info& id = typeid(*this);

	if (typeid(CSample) == id)
	{
		// クラス名は「CSample」です。
	}
OK キャンセル 確認 その他