C에서 객체 유형 찾기
dynamic_cast를 사용하여 객체 유형을 확인할 수 있습니다. 이 방법은 한 포인터 또는 참조 유형에서 다른 포인터 또는 참조 유형으로 데이터를 동적으로 캐스팅하여 런타임에 캐스팅의 유효성을 확인합니다.
사용법:
포인터 유형으로 캐스팅하려면:
TYPE* dynamic_cast<TYPE*>(object);
참조로 캐스팅하려면 유형:
TYPE& dynamic_cast<TYPE&>(object);
결과:
런타임 유형 정보(RTTI)
Dynamic_cast는 RTTI를 사용하며 이는 다형성 클래스(즉, 하나 이상의 가상 메서드가 있는 클래스) 실제로 대부분의 기본 클래스에는 파생 클래스의 적절한 정리를 위한 가상 소멸자가 있으므로 이는 큰 제한 사항이 아닙니다.
예:
다음은 다음을 사용하는 예입니다. 객체가 B 유형인지 확인하는 동적_캐스트:
class A {}; class B : public A { public: void b_function() {} }; void func(A& obj) { B* b_ptr = dynamic_cast<B*>(&obj); if (b_ptr != nullptr) { b_ptr->b_function(); // Object is of type B } else { std::cout << "Object is not of type B" << std::endl; } }
위 내용은 C에서 런타임에 개체 유형을 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!