Weiter Zurück Inhaltsverzeichnis

### 10. Der Klassenbrowser

### 10.1 Die Klassenansicht

Die Klassenansicht von KDevelop ist eine der nützlichsten und wichtigsten Werkzeuge, die die Entwicklungsumgebung dem Entwickler zur Bearbeitung seiner Projektdateien bietet. Sobald ein Projekt geladen wird, liest der Klassenanalysator die Projektdateien nach Funktionen, Klassen etc. durch und zeigt das Ergebnis in der CV-Baumansicht an. Dieses Kapitel erläutert Ihnen, wie Sie die Klassenansicht und weitere Funktionen verwenden und wie Sie Ihre Arbeit vereinfachen können.

Klassen und deren Methoden können Sie ebenfalls über die Browser-Werkzeugleiste auswählen. Dort befinden sich in der linken Combobox die Klassen, in der rechten können Sie die zugehörigen Methoden auswählen. Wenn Sie eine Methode gewählt haben, wird Sie der Klassenbrowser automatisch zur Implementationsdatei bringen und den Cursor an die Methode setzen. Schließlich bietet Ihnen die Schaltfläche des Klassenassistenten rechts der Methoden-Combobox an, Sie beim ersten betätigen zur Deklaration der Methode zu bringen; bei einer weiteren Betätigung wieder zurück zur Definition. Das verzögerte Popup-Menü, das durch den Abwärtspfeil dargestellt wird, bietet zusätzliche Funktionen, die ebenfalls in den Kontextmenüs der Klassenansicht zur Verfügung stehen:

- Gehe zur Deklaration: wechselt zur Deklaration der Methode
- Gehe zur Definition: wechselt zur Definition der Methode
- Gehe zur Klassen Deklaration: wechselt zur Klassendeklaration
- Neue Klasse: öffnet das Dialogfeld "Neue Klasse"
- Methode hinzufügen: fügt der aktuellen Klasse eine Methode hinzu
- Variable hinzufügen: fügt der aktuellen Klasse eine Variable hinzu
- Zeige graphische Klassenansicht: Öffnet den graphischen Vererbungsbaum

#### Verfügbare Objekte

Mit verfügbaren Objekten beschreiben wir den Umstand, das man C++ Code auch als eine Sammlung von Objekten betrachten kann- Klassen, deren Member-Funktionen, globale Funktionen und so weiter. Der Klassenbaum zeigt diese Objekte logisch und nach ihrem Charakter geordnet an, sodass sie sehr einfach durch ihr zugehöriges Symbol im Baum lokalisiert werden können. Daher enthält der Klassenbaum einen "Klassen" und "Globals"-Ordner, wobei der "Klassen" Ordner allgemein die Klassen des Projekts enthält; wenn Ihr Projekt Unterordner beinhaltet, um Quelldateien besser zu sortieren, werden die darin enthaltenen Klassen durch den Namen des Unterordners ebenfalls in Ordnern untergebracht.

Weiterhin zeigt Ihnen der Klassenbaum bei Auswahl einer Klasse den Inhalt nach Methoden und Attributen an. Da diese ebenfalls Attribute wie public, private und protected besitzen, werden diese mit leicht geänderten Symbolen angezeit. Sie sehen, das eine Klasse, die im Klassenbrowser angezeigt wird, alle Objekte enthält wie sie in der Klassendeklaration erscheinen.

Nun, Klassen sind wohl die üblichsten Objekte, wenn man in C++ programmiert und werden den meisten Teil des Codes abdecken. Aber Applikationen enthalten auch Elemente, die eine "Globale" Erscheinung im Programm aufweisen. Dies wären Strukturen, Funktionen etc. Speziell die `main()` Funktion erscheint in jeder Applikation und Sie werden Sie in der ein oder anderen Weise modifizieren wollen. Um auf diese Objekte zuzugreifen, enthält die Klassenansicht einen Ordner "Globals", der wiederum Unterordner für folgende Objekttypen enthält:

- Strukturen
- Funktionen
- Variablen

Da die Symbole, die diese Elemente repräsentieren, denen der Klassen sehr ähnlich sind, ist ihre Bedeutung leicht zu merken.

Schließlich können wir sagen, das die Klassenansicht Ihr Projekt graphisch durch die Objekte darstellt, wie sie im Code erscheinen. Im folgenden werden Sie mit der Benutzung der Klassenansicht und seiner Werkzeuge in Verbindung mit Ihrem Code vertraut gemacht.

#### Wechseln zu Deklaration und Implementation von Objekten

Die größte Stärke der Klassenansicht sind die zur Verfügung stehenden Funktionen, den Code durch seinen Inhalt zugängig zu machen, unabhängig von der Plazierung in den Projektdateien. Daher bringt Sie die Auswahl über

- einer Klasse: zur Klassendeklaration
- einer Methode: zur Methoden-Implementierung
- eines Klassenattributs: zur Deklaration des Attributs innerhalb der Klassendeklaration
- einer Struktur (struct): zur Deklaration der Struktur
- einer globalen Funktion: zur Funktion-Implementierung

Nun, dies bietet Ihnen die meistbenötigten Funktionen, um Objekte zu lokalisieren. Gelegentlich ist es jedoch nötig eine Funktionsdeklaration oder ähnliches zu ändern, wobei sie zum Ort der Deklaration innerhalb der Klasse als auch zur Implementation gelangen müssen. Die Klassenansicht unterstützt Sie dabei über Kontextmenüs über Elementen. Über einer Methode oder Funktion bedeutet dies, das Sie wählen können, wohin Sie wollen:

- Gehe zu Definition: Wechselt zur Impelentation- auch standardmäßig über einfache Auswahl wie oben beschrieben
- Gehe zu Deklaration: Wechselt zur Deklaration der Methode oder Funktion

Mit diesem Verhalten bietet Ihnen der Klassenbrowser unbeschränkten Zugang zu allen Orten, die Sie bei der Programmierung von C++ Applikationen benötigen.

Der folgende Abschnitt gibt Ihnen eine Beschreibung der weiteren Werkzeuge, die der Klassenbrowser bietet- Sie werden sie sehr nützlich finden, wenn Sie an größeren Projekten arbeiten, da Sie die Idee der Objekt-Orientierten Arbeit an C++ Programmen stark erweitern.

### 10.2 Die Klassenwerkzeuge

Die Klassenwerkzeuge sind Dialogfelder, die es dem Entwickler noch einfacher machen, informationen über die Klassen seines Projekts zu erhalten. Die Klassenansicht zeigt alle Objekte nach ihrer Erscheinung im Code an, aber manchmal benötigen Sie weitere Informationen, ohne unbedingt in den Code zu schauen. Daher sind die Klassenwerkzeuge darauf ausgerichtet, spezifische Klasseninformationen anzuzeigen.

Der Klassenwerkzeug-Dialog wird über ein Popup Menü über einer Klasse in der Klassenansicht aufgerufen. Wählen Sie "Klassenwerkzeuge", um zum Dialogfeld zu gelangen. Um informationen über eine Klasse zu erhalten, wählen Sie den Klassennamen in der Combobox am oberen Rand aus. Dann bieten Ihnen die Schaltflächen darunter folgende Funktionen zur Anzeige spezifischer Bäume Ihrer Klasse. Diese sind:

Parents:

  Die Eltern der ausgewählten Klasse (Klassen, die die Klasse beerbt). Dies ist nützlich in Bezug auf die Verwendung multipler Vererbung als auch um herauszufinden, warum die Klasse sich in der ein oder anderen Weise verhält, z.B. können Dialogfelder sowohl `QWidget` als auch `QDialog` beerben.

Children:

  Zeigt alle Klassen an, die die aktuelle Klasse beerben.

Clients:

  Klassen, die die ausgewählte Klasse durch Attribute in ihrer Klassendeklaration verwenden Classes that make use of the selected class by an attribute in their class declaration

Suppliers:

  Klassen, die durch Attribute der Klasse verwendet werden

Attribute:

  Namen der Attribute der ausgewählten Klasse

Methoden:

  Methoden der ausgewählten Klasse

Weiterhin erlaubt das Klassenwerzeug die sortierte Anzeige nach Modifizierer-Attribut alle, public, protected und private.

### 10.3 Handhabung von Klassen

Der Klassenbrowser erlaubt weiterhin das direkte Hinzufügen von Methoden und Attributen zu Klassen über Dialogfelder. Dies bedeutet, das Sie die Klassendeklaration und Implementationskopf nicht mehr selbst eingeben müssen. Nach dem Hinzufügen einer Methode müssen Sie lediglich die Formalparameter dem Implementationskopf hinzufügen (falls diese nicht in der Methodendeklaration enthalten sind).

» Wie man einer Klasse eine Methode hinzufügt

1. wählen Sie die Klasse in der Klassenansicht aus, der Sie eine Methode hinzufügen möchten
2. drücken Sie die rechte Maustaste; das Popup-Menü erscheint
3. wählen Sie "Funktion hinzufügen"
4. das Dialogfeld "Funktion hinzufügen" erscheint.
5. geben Sie den Typ, Deklaration und Dokumentation der zu erstellenden Methode an
6. geben Sie den Zugriff und die Modifizierer der Methode an
7. bestätigen Sie mit OK, um den Dialog zu verlassen

Um eine Variable hinzuzufügen führen Sie die gleichen Schritte aus, wählen dabei jedoch "Variable hinzufügen" im Popup-Menü.

Der Unterschied zwischen diesen Dialogen ist, das beim Hinzufügen einer Variable nur die Variable in der Klassendeklaration erklärt, das Hinzufügen einer Methode wird die Methodendeklaration und der Implementationskopf dem Quellcode hinzufügen. Da die Klassenansicht sich selbst aktualisiert, haben Sie direkten Zugang zu der Implementation der neuen Methode, so daß Sie nur die Methode anspringen müssen, um den auszuführenden Code einzugeben.

Weiter Zurück Inhaltsverzeichnis