🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #604

Re: Was ist RTTI?

#604
From: Karl-Heinz Krause
Date: Tue, 17 Oct 1995 17:42
44 lines
1854 bytes
Am 16. Okt. 1995 schrieb Benjamin Baermann
(benni@admeta.rbi.informatik.uni-frankfurt.de):

> Hallo!

> Ich hoer euch hier in anderen Threads immer ueber RTTI reden. Kann mir
> (und anderen, wenn es sie interessiert) jemand vielleicht kurz erklaeren
> was das ist? Rapid-Type-True-Interface ;-?

RTTI steht für Run Time Type Identification, also der Möglichkeit, den
wirklichen Typ eines Objekts zur Laufzeit bestimmen zu können. Beispiel:

	class A { virtual ~A(){} };
	class B: public A { int f(); };
	A *p;

In C++ kann ein Zeiger des Typs A* auch auf ein Objekt einer
abgeleiteten Klasse verweisen. Erlaubt ist also z. B.

	B b;
	p = &b;

Mit RTTI ist es nun möglich, den tatsächlichen Typ, den das von p
referenzierte Objekt hat, zur Laufzeit festzustellen. Dazu gibt es in
C++ zwei Sprachmittel, nämlich "typeid" und "dynamic_cast". Beispiel:

	cout << typeid(*p).name();

Gibt hier "B" aus, also den Namen des tatsächlichen Typs von *p.

	B *pb = dynamic_cast<B*>(p);
	if(pb) {
	    // *p hatte den Typ B, also können B-Operationen benutzt werden
	    pb->f();
	}
	else {
	    // *p hatte leider nicht den Typ B.
	}

Das war nur eine grobe Übersicht. Nähere Auskünfte gibt ein Lehrbuch.
Oder die Doku Deines Compilers, falls der bereits RTTI unterstützt.


Karl-Heinz Krause
Technical Details
Message-ID: <460pth$ns2@news00.btx.dtag.de>
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
References: <45u7u0$qfb@zeus.rbi.informatik.uni-frankfurt.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
From: Krause@btx.dtag.de (Karl-Heinz Krause)
Newsgroups: de.comp.lang.c++
Subject: Re: Was ist RTTI?
Date: 17 Oct 1995 17:42:09 GMT
Organization: Telekom Online Internet Gateway
Message-ID: <460pth$ns2@news00.btx.dtag.de>
References: <45u7u0$qfb@zeus.rbi.informatik.uni-frankfurt.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause)
X-Newsreader: Forte Free Agent 1.0.82