Was ist eine Klasse? Wozu brauche ich eine Klasse?
-
frage steht im Titel

VG,
Zeh-Sar
-
Um bestimmte Programmabläuft besser kapseln zu können. Alles weitere erfährst du in jedem zweitklassigen C++ Tutorial.
-
ich versuche es mal:
eine Klasse ist ein Objekt. c++ ist objhektorientiert.
du kennst bestimmt folgendes
int a;
somit hast du einen int!
brauchst du mehrere machst du ein array int a[10];
das ist eine zusammenfassung gleicher daten!
nehmen wir aber an - du willtst menschen haben. so sind das viele verschiedene datentypen. man kann die größe ja noch in einem int speichern aber nicht den namen.
ich versuche es dir mal zu belegenstruct tMensch { int groesse; int alter; AnsiString name, vorname, adresse,plz, handy, tel, email; void ausgabe(); }somit habe ich die ganzen daten in einem datensatz mensch zusammengehalten.
das ist jetzt ein objekt. das erzeugt man wie folgt
tMensch freunde[10];
somit haste jetzt 10 freunde gemacht!eine klasse ist nix anderes nur das die ganzen variablen in der regel privat sind. das heißt nur funktionen die der klasse angehören dürfen die variablen ändern.
bspclass tMyClass { private: int i; int a; AnsiString s; public: void set_i(int wert){i = wert;}; int get_i(){return i}; . . . }so kannst du werte nur über die funktionen die der klasse angehören ändern.
in einem struct ist alles public (öffentlich)oh man - war das zu verstehen?

-
Ich selber hab das prizip auh nur durch eine klasse person; gelernt und sofort gerafft
hier mal beispiele von 3 simplen kallsen von mir
:Gegner.h:
//Klasse des Gegners class CEnemy { public: //Funktionen: void get_health(); //Erstellt void hit(); //Erstellt void shoot(); //Erstellt void get_info(); //Erstellt void reload(); //Fehlt!!! //Variablen: int shooting; int health; int armor; CEnemy(int xarmor, int xhealth) { health=xhealth; armor=xarmor; } ~CEnemy() { } };Spieler.h
//FINAL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //Klasse des Spielers class CPlayer { public: //Funktionen: void get_health(); //Erstellt void hit(); //Erstellt void shoot(); //Erstellt void get_info(); //Erstellt void reload(); //Erstellt //Variablen: int health; int armor; CPlayer(int xarmor, int xhealth) { health=xhealth; armor=xarmor; } ~CPlayer() { } };Pistole.h (ist natürlich keine für ein echtes game :D:
//FINAL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //Klasse der pistole class CPistole { public: //Funktionen: void info(); //Erstellt(FINAL)!!! void idle(); //Erstellt(eher unnütze)(FINAL)!!! //Variablen: int shoot; int magazin; int ammo; int damage; CPistole(int xammo, int xmagazin, int xdamage) { magazin=xmagazin; ammo=xammo; damage=xdamage; } ~CPistole() { } };So das ist nur für ein (aus meiner geisteskrankheit herraus) enstandenes Win32 Konsolen game

Ist noch nicht fertig aber morgen arbeite ich fleissig weiter
-
Zeh-Sar schrieb:
frage steht im Titel

VG,
Zeh-Sar
Die Frage lässt nicht vermuten, dass du dich schon eingehend mit dem Thema selber befasst hast. Ein gutes Buch über Objektorientierung wird dir helfen und als Überblick kann http://de.wikipedia.org/wiki/Objektorientierte_Programmierung#Klassen dienen.
-
Wie würde denn ein komplettes Programm mit Klassen aussehen? (Ich bin auch Anfänger)
mfg,
Marius
-
#include <iostream> int main() { std::cout << "Hallo Welt"; }Ein Programm das eine Klasse verwendet, bitte schön.
Gruß
-
FireFlow: Depp.
-
Wenn er nen komplettes Beispiel will soll er ein Buch lesen oder ein Tutorial bearbeiten. Da gibt es genügend dieser Beispiele. :xmas1:
Gruß
-
FireFlow schrieb:
#include <iostream> int main() { std::cout << "Hallo Welt"; }Ein Programm das eine Klasse verwendet, bitte schön.
Gruß
Fireflow du hättest noch nen paar Worte dazu sagen sollen, aber nen hammer Beispiel.
Weil sich andere hingesetzt haben und viele schlaflose Nächste mit dem Entwurf der C++-Streams verbracht haben, kannst du jetzt ohne irgendwas über die Konsole und die Ausgabe darauf auf deinem Betriebssystem, etwas auf der Konsole ausgeben und zwar mit solch einer einfachen Zeile.
Wenn du dir diese Einfachheit anschaust wird dir sicher bewusst, warum Klassen so mächtig sind.
-
User--- schrieb:
Wenn du dir diese Einfachheit anschaust wird dir sicher bewusst, warum Klassen so mächtig sind.
Genau
Und das ist ein wichtiger Bestandteil der OOP das man das "innere" versteckt und dem Anwender eine einfach Schnittstelle (Interface) bietet um mit den Daten zu arbeiten 
-
User--- schrieb:
[...]
Fireflow du hättest noch nen paar Worte dazu sagen sollen, aber nen hammer Beispiel.Weil sich andere hingesetzt haben und viele schlaflose Nächste mit dem Entwurf der C++-Streams verbracht haben, kannst du jetzt ohne irgendwas über die Konsole und die Ausgabe darauf auf deinem Betriebssystem, etwas auf der Konsole ausgeben und zwar mit solch einer einfachen Zeile.
Wenn du dir diese Einfachheit anschaust wird dir sicher bewusst, warum Klassen so mächtig sind.

Echt? Dann muss bei mir aber etwas anders verdrahtet sein.
Ein simplesprint "Hello World";ist nicht nur schöner, sondern zeigt, dass man für ein Hello World definitiv OOP im Allgemeinen und Klassen im Speziellen in der Kiste lassen kann
