006
30.06.2003, 15:19 Uhr
Pablo
Supertux (Operator)
|
Was eine Klasse ist? Du kannste s einfach erkären. Eine Klasse ist eine Menge von Attributen (Member Variablen) und Methoden (member Functions). es gibt nicht nur die eingebaute Datentypen wie int, long, char, usw. In C und selbsverständlich in C++ kannst du deine eigene Datentypen definieren, die nach deinem Geschmack funktionieren. In C kannst du nur Datentypen definieren, in C++ sind sie Klassen, weil du neben den Member Varibalen auch Funktionen deklarieren kannst, die als Bestandteil eines Datentyps gelten.
Wenn du Objekte brauchst, oder wenn du Objekte modellieren willst, dann lohnt es sich eine Klasse zu bauen. Zum Beispiel, du willst ein Programm schreiben, welches ein Luftballon simulliert
Du erzeugst die Klasse Luftballon. Welche Attributen (Eigenschaften) soll ein solcher Luftballon haben? 1. Farbe 2. Grösse 3. Radius 4. Zustand (fliegend, fallend, liegend {wenn auf dem Boden liegt} 5. X Coord. 6. Y Coord. 7. Z Coord (wenn du dich im R^3 befindest) All diese Attributen kannst du mit einfachen Variablen modellieren. Welche Methoden (Aktion, Tätigkeit)? 1. fliegen 2. fallen 3. explodieren 4. liegen
Also wie macht dann das.
C++: |
// luftballon.h class Luftballon { public: // alle soll jetzt offen sein int farbe, groesse, radius, zustand, x, y;
// Konstruktoren Luftballon(); // Destruktoren ~Luftballon(); // nicht immer notwendig // Methoden void fliegen(); void fallen(); void explodieren(); void liegen(); }:
|
Das ist eine einfache Definition eiiner Klasse. Der Konstruktor sorgt dafür, dass die Member Variablen vmit Standard-Values initialisieren werden, wenn du sie programmierst, sonst sagt nur, dass es eine Klasse geben muss. Ein Destruktor macht das Gegenteil, aber es ist nicht notwendig. In diesem Fall sind alle Attributen und Methoden im globalen Gültigkeitsbereich der Klasse, d.h, dass Objete dieser Klasse können auf diese zugreifen. Es gibt viele Methoden und Attribute, die als private deklariert sind, damit man sie nicht benutzen kann. Meistens kann man auf sie zugreifen, indem der Programmier der Klasse eine öffentliche Methode einfügt, die auf diese Variable zugreifen kann.
Wenn man die Methoden schreiben will, muss man entweder eine neue cpp Datei öffnen und weiter verarbeiten, man kann jedoch in der selbe Datei machen. Normalerweise deklariert man die Klassen in den .h Dateien und den Code in de .cpp Date. Gehen wir davon aus, dass Luftballon in der Datei luftballon.h sich befindet.
C++: |
// luftballon.cpp #include "luftballon.h" Luftballon::Luftballon() { // Konstruktor farbe = 4; groese = 4; radius = 30; zustand = 0; // 0 = liegen, 1 = fliegend, ... X = 0; Y = 0; Z = 0; } void Luftballon::fliegen() { // hier code... je nach Implementation unterschiedlich }
|
In einer anderen cpp oder da selbst kannst du dann ein Objekt von Typ Luftballon machen.
C++: |
// main.cpp #include "luftballon.h"
int main() { Luftballon myBallon; myBallon.radius = 100; // gigantischer Ballon myballon.fliegen(); // Ballon fängt an zu fliegen }
|
Das ist billiges Beispiel, aber ich hoff du hast das Prinzip einer Klasse verstanden.
Der beste Weg eine Klasse zu vertstehen und zu "beherrschen" ist das ständige ausprobieren. Mavh solche Klassen und dann ist dir klar oder kauf die ien Buch über Objektorientierte Programmierung (meistens C++ oder Java Bücher) -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 30.06.2003 um 15:23 Uhr von Pablo Yanez Trujillo editiert. |