본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

java에 instanceof가 있다면 C++에는 typeid가 있다.

by 회색뿔 2012. 4. 10.


어떠한 class instance가 class의 instance인지 확인하는 방법을 알아보고자 했다.

자바에서는 instanceof keyword(or operator)로 가능하다.


#include "Serializable.h"
#include <typeinfo>


Serializable::Serializable(void)
{
}


Serializable::~Serializable(void)
{
}


void Serializable::write(void *p)
{
	if(typeid(p) == typeid(Serializable))
	{
	}/* else if () {
	}*/
}

void Serializable::read(void *)
{
}



typeid함수는 type_info구조체를 반환한다. 이 구조체의 멤버함수 name() 이나 operator ==를 통해  instanceof과 같은 동작을 확인할 수 있다.


typeid(p) == typeid(Serializable)가 true면 p는 Serialization의 instance다.