Zitat von Sir_Hans;105270
ich wusste ne zeitlang auch nicht viel über klassen bei c++ bis mir dann einer in einem internationalen forum einen link geschickt hat wo die das sehr gut erklärt haben. ich denke ich könnte auch ein tutorial dafür schreiben jedoch ist hier in der c++ abteilung nichts los und wenn man eine sprache lernen will dann sollte man das nicht in einem deutschen forum meiner meinung nach (meine meinung wer was anders meint meint was anderes ;)). falls es fragen zu projekten gibt helfe ich gerne aber tutorials gibts bei google zu allem von c++ schon genug da müssen es nicht nochmehr geben (sry ber wie gesagt meine meinung)
es gibt viele möglichkeiten eine variable als klasse zu machen, ich benutz eig immer
klassenname* variablenname = new klassenname(parameter der klasse);
variablenname->eine funktion in der klasse();
wobei man * und -> bei pointern benutzt wo ich den unterschied noch nicht ganz raus hab aber es funktioniert ;)
PS: die tutorials sind gut und gut erklärt aber es gibt halt schon unendlich viele^^
Alles anzeigen
Bevor ich zu dem Guide komme, würde ich gerne hierzu einiges sagen:
1) Es sind Objekte oder Instanzen, die du von einer Klasse erzeugst und nicht direkt Variablen (Konvention...)
2) Generell sind bei Speicherverwaltungsgeschichten 2 Begriffe sehr wichtig:
Der Heap und der Stack. Dynamisch erzeugte Objekte (Bsp: Klasse *Object = new Klasse();) landen im Heap. Der Vorteil ist eben, wie Ichbinniemand schon sagte, man kann auf diese Weise Objekte, wenn sie nicht mehr benötigt werden, löschen und so Speicherplatz freigeben (oder aber vergrößern). (Stichwort: sauberer Programmierstil)
3) Wie schon erklärt ist der Asterisk (*) bei der Deklaration wichtig, abgesehen davon kann man mit ihm auch den Wert der Variable auf die der Zeiger "zeigt" ändern.
Bsp.:
int val = 1;
int *pointer;
// Speicheradresse der Variable zuweisen
pointer = &val;
// Veränderung des Wertes der Variable val (Dereferenzierung)
*pointer = 2;
Aber das greift etwas sehr weit vorraus.
Zumindest existiert der Operator '->', um bei dynamisch erzeugten Objekten Memberfunktionen aufzurufen (Objekt->Funktion(Parameter);)
Soviel dazu, nun zum Guide:
Erstmal positiv zu vermerken wäre, dass der Inhalt des Guides im Groben und Ganzen richtig ist, mal von den Rechtschreibfehlern und der Formatierung abgesehen.
Bei
ist 'int' nicht der Datentyp, sondern der Typ des Rückgabewertes.
Außerdem sind dir bei deinem letzten Beispiel einige Fehler unterlaufen:
//Beispiel zur Verwendung von cin
#include <iostream>
[COLOR="Red"]using namespace std;[/COLOR]
int main()
{
int Zahl[COLOR="Red"];[/COLOR]
cout << "Geben sie eine beliebige Zahl ein: ";
//Speichern der Usereingabe in der Variable Zahl mittels dem Befehl cin
cin >> Zahl;
cout << endl << "Eingegeben wurde die Zahl << Zahl << endl;
cin.get();
return 0;
}
Alles anzeigen
Ansonsten gar nicht mal übel :p