🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
2 messages
2 total messages Started by Benjamin Baermann Mon, 16 Oct 1995 18:22
Was ist RTTI?
#590
Author: Benjamin Baermann
Date: Mon, 16 Oct 1995 18:22
13 lines
845 bytes
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 ;-?

Gruesse, Benni


-- 
benni@informatik.uni-frankfurt.de|http://www.uni-frankfurt.de/gnomic/hello.html
    "Deshalb, Leute, die glauben, dass Computer werden nicht koennen, wie
      Menschen zu denken, auch glaubt nicht in Maschine-Uebersetzung."
Re: Was ist RTTI?
#604
Author: 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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads