ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
995
995
EMPFEHLEN
-
10.10.05 16:22 #1
- Registriert seit
- Oct 2005
- Beiträge
- 32
Hallo,
ich bin gerade dabei C++ zu lernen und komme aus der Java Welt. Dort gab es die Möglichkeit Interfaces zu verwenden, um sicherzustellen, dass eine Klasse über bestimmte Methoden verfügt.
Gibt es etwas vergleichbares in C++? Oder übernimt dies generell die Header Dateiund es gibt gar keine Interfaces?
Wenn es welche gibt; wie verwendet man sie?
Viele Grüße,
Jens Hibbeler
-
Direkt gibt es die Interfaces nicht, aber etwas gleichwertiges: Abstrakte Klassen. Du kannst eine Basisklasse definieren und in der Definition bei jeder Funktion ein = 0 anfügen.
Das heisst für den Compiler, eine abgeleitete Klasse muss diese Funktion implementieren, sonst gibt es einen Compiler-Fehler. Durch Mehrfachvererbung kann man dann dieselbe Funktionalität wie bei Java erzielen.
Ein Beispiel aus meinen Renderer-Code: Ich habe mehrere Renderer (DX8, DX9, OpenGL) von einer abstrakten Klasse (aka Interface) abgeleitet. Ich kann mir dann je nach Konfiguration eine DLL einladen, die mir einfach nur einen Pointer auf ein Interface gibt. Der Benutzer hat keinerlei Einsicht in die Klasse dahinter:
Code :1 2 3 4 5 6 7 8 9 10
class IRenderer { public: virtual bool Initialize( int iWidth, int iHeight, int iDepth ) = 0; virtual bool RenderVertexBuffer( IVertexBuffer* pBuffer ) = 0; };
Jede davon abgeleitete Klasse, die instanziiert werden soll, muss direkt oder über eine "Zwischen"-Basis-Klasse diese Funktionen implementieren.
Wichtig: Beachte, dass du dann einen virtuellen Destruktor hast, damit die Klassen auch sauber abgeräumt werden! Immerhin hat der Compiler ja dann nur einen Interface-Pointer zur Verfügung!
-
11.10.05 10:11 #3
- Registriert seit
- Oct 2005
- Beiträge
- 32
Hallo,
danke für Deine Antwort. Das erklärt alles!
Viele Grüße,
Jens Hibbeler
Ähnliche Themen
-
Interfaces in anderen Interfaces implementieren
Von mueslirocker im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 0Letzter Beitrag: 12.09.10, 18:12 -
interfaces
Von jiim im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 3Letzter Beitrag: 27.07.07, 08:06 -
Interfaces
Von brunso im Forum JavaAntworten: 6Letzter Beitrag: 28.06.07, 09:56 -
interfaces
Von lernen.2007 im Forum JavaAntworten: 7Letzter Beitrag: 23.03.06, 15:30 -
Ínterfaces
Von Swishagent im Forum Flash PlattformAntworten: 1Letzter Beitrag: 05.07.01, 12:06





Zitieren
Login





