Warum muss ich <typeinfo> einschließen, wenn ich den Operator typeid verwende?

Dastypeid steht für einen C ++ - RTTI-Operator, der auch ein C ++ - Schlüsselwort ist. Es gibt ein @ zurüstd::type_info Objekt, das (dynamische) typspezifische Informationen enthält.

ach dem, was ich aus verschiedenen Quellen verstanden habe, MUSS man<typeinfo> beim Benutzentypeid, sonst ist das Programm falsch aufgebaut. Tatsächlich kompiliert mein gcc5.2-Compiler das Programm nicht einmal, wenn ich den oben genannten Header nicht einbinde. Ich verstehe nicht, warum ein Header-Einschluss für die Verwendung eines C ++ @ vorgeschrieben isStichwor. Ich verstehe, dass ein Header immer dann vorgeschrieben wird, wenn wir ein Objekt verwenden, das in diesem Header deklariert / definiert ist, abertypeid ist kein Klassentyp. Was ist der Grund für diese Erzwingung der Aufnahme des Headers <typeinfo>?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage