This article needs attention from an expert in Computing. See the talk page for details. Run-time type information can apply to simple data runtime type identification in c++ pdf, such as integers and characters, or to generic types.
Bjarne Stroustrup did not include run-time type information, because he thought this mechanism was often misused. RTTI is available only for classes which are polymorphic, which means they have at least one virtual method. In practice, this is not a limitation because base classes must have a virtual destructor to allow objects of derived classes to perform proper cleanup if they are deleted from a base pointer.
There may be a resource cost to making RTTI available even if a program does not use it. The typeid keyword is used to determine the class of an object at run time. It returns a reference to std::type_info object, which exists until the end of the program.
Whether an exception is thrown for other null reference arguments is implementation-dependent. Unlike the static_cast, the target of the dynamic_cast must be a pointer or reference to class. Suppose some function takes an object of type A as its argument, and wishes to perform some additional operation if the object passed is an instance of B, a subclass of A.
This can be accomplished using dynamic_cast as follows. For std::cout, std::err, std::endl etc.