RTTI2 [C++] 상속과 RTTI 상속과 RTTI 함수가 인자로 기반 클래스의 포인터를 받으면 - 기반 클래스 뿐 아니라 모든 파생 클래스를 전달 받을 수 있다. 기반 클래스 포인터로 파생 클래스의 고유 멤버에 접근 할 수 없다. - 파생클래스의 고유 멤버에 접근하려면 파생 클래스 타입으로 캐스팅 (다운 캐스팅, downcasting) 해야 한다. #include #include class Animal {}; class Dog : public Animal { public: int color; }; void foo(Animal* p) { // p가 Dog 이라면 p->color = 10; // error } int main() { Animal a; foo(&a); Dog d; foo(&d); } 아래와 같이 p는 Animal 클래스 형태로.. 2021. 12. 30. [C++] RTTI (Run Time Type Information) RTTI(Run Time Type Information) 실행시간에 타입의 정보를 얻을 때 사용하는 기술 헤더 포함하고 typeid 연산자를 사용하면 된다. 타입의 정보를 담은 type_info 객체를 얻을 수 있다. type_info 객체의 멤버 함수 name()을 사용해 출력 가능하다. #include #include int main() { int n1 = 10; auto n2 = n1; // n2의 타입은 int ? const std::type_info& t1 = typeid(n2); std::cout 2021. 12. 29. 이전 1 다음