Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Tutorials
You last visited: Today at 12:12

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++, der Einstieg

Discussion on C++, der Einstieg within the Tutorials forum part of the Off-Topics category.

Reply
 
Old   #1
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
C++ Anfänger Tagebuch

Hallo,
nunja meine neue Klasse hat einen schlechten c++ Lehrer und keiner verstehts, also haben wir ein Forum gemacht und ich helf durch ein paar Tips und Anleitungen weiter, aber wie gesagt fang ich auch gerade mit c++ an und alles was ich schreibe ist Halbwissen, also könnte ich Fehler machen.
Da das eigentlich für jeden interessant sein sollte, der die Sprache lernen will, poste ich alles was ich nun schreibe auch hier.
Bitte berichtigt mich bei Fehlern, ich hoffe man kann alles gut verstehen.
Falls noch Fragen zur Benutzung von Visual Studio offen sind, helfe ich auch gerne.

(Zur Info: Herr Kopf (c++) und Herr Beer (et) sind zwei unserer Lehrer )

Unser Schulbuch heißt: Wirtschaftsorientiertes c++ (oder so .. ich guck mal morgen)

Also nehmen wir dieses Script auseinander:

Code:
#include <iostream>
using namespace std;

int main()
{
int x;

cin >> x;
cout << "hallo" << x << endl;
return 0;
}
So dann mal los:

Code:
#include <iostream>
Hiermit gebt ihr dem Compiler an, dass ihr die Datei iostream in euer Programm mit einbeziehen wollt.
So eine Datei ist nichts anderes als eine Quellcode Datei, die wir in der Schule erstellen.

Code:
using namespace std;
Eine Bibliothek (wie iostream) hat meistens verschiedene Namensräume, also verschiedene Code Blocks, die wiederrum Funktionen enthalten.
cout ist eine Funktion, welche im Namensraum (auch namespace) std vorhanden ist, also müssen wir, um cout zu nutzen, dem Compiler sagen den Namensraum std im Programm einzubinden.

Ein kleines Beispiel:
Cout ist Seite 225 in einem Buch
std ist das Buch, dass die Seite 225 beinhaltet.

Wenn Herr Beer uns sagen würde "Arbeitet mal Seite 225 ab", könnten wir dies schlecht machen, da wir nicht wissen welches Buch Herr Beer meint.
Der Compiler ist in diesem Fall der Schüler und weiß genauso wenig was die Funktion cout ist, wenn wir im nicht sagen, wo er diese finden kann.

(Wenn euch das zu kompliziert ist, lasst es aus. Zu diesem Zeitpunkt müssen wir diese beiden Zeilen eh nur kopieren)

Code:
int main()
{
return 0;
}
Ein c++ Programm ist oft in verschiedene Funktionen eingeteilt und im obigen Codeblock sehen wir solch eine Funktion.

main() ist immer der Einstiegspunkt, sprich es wird zuerst der Code in der Main() Funktion ausgeführt (also das was in den Klammern steht).

Das int vor dem Funktionname definiert die Funktionart.
int heißt in diesem Falle die Funktion muss am Ende immer eine Zahl zurrückgeben (return 0; [return = zurrückgeben])

Code:
int x;
Ihr kennt Variablen in Mathe? Was anderes ist es hier auch nicht. Jede Variable (Platzhalter) steht für einen Wert.
Beispiel in Mathe:
Code:
x = 5

x+5=10
Mehr ist es in c++ auch nicht, nur ist es hier von nöten anzugeben, was für ein Typ von Platzhalter die Variable ist.

int x; erstellt in unserem Beispiel eine Variable, die eine Zahl wiederspiegeln kann und noch keinen Wert hat

int x = 5; würde der Variable den Wert 5 zuweisen (Fachwort: initialisieren)
Code:
int = 5;
cout << "Herr Kopf lutsch schwänze in der hölle xx " << x << endl;
Ausgabe in CMD
Herr Kopf lutsch schwänze in der hölle xx 5

cout gibt eine Nachricht im CMD Fenster aus.
Das was in den "" steht wird wortwörtlich in der CMD angezeigt. Will man einen Operator oder eine Variable verwenden setzt man schnell zwei << und schreibt dann den Platzhalter hin und beendet wieder mit <<.
Achtung:
Ohne die Anführungszeichen kann man mit cout nur Variablen oder Operatoren verwenden (Operatoren sind +, *, / usw).

So sollte es nicht sein:

Code:
cout << lol << endl;
lol ist weder eine Variable noch ein Operator, der Compiler gibt einen Fehler aus. Möchte man das in CMD einfach nur das Wort lol ausgegeben wird, müsste man Anführungszeichen drum setzen (man kann auch wtf nehmen haha)

Code:
cin >> x;
cin fordert den Nutzer zu einer Eingabe, sprich man würde durch eine Eingabe dem Platzhalter x einen Wert verleihen.
Imperial Blaze is offline  
Thanks
6 Users
Old 10/28/2010, 14:41   #2
 
GotDamned's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 1,918
Received Thanks: 3,080
Für totale Anfänger ganz gut.
Persönlich finde ich, dass es ruhig ein wenig mehr hätte sein dürfen.
Zudem hätte man genauer auf die cin&cout eingehen können.
Als Anmerkung vllt noch dazuschreiben:
Quote:
cin = console in => Eingabe
cout = console out => Ausgabe
Ansonsten würd ich gerne wissen, ob ich den Link zum Forum kriegen könnte und mich da anmelden dürfte (natürlich per PN).
Schulisch lernen wir leider kein C++ und deswegen würde ich mich da gerne noch im Forum beteiligen, da Eigenstudium doch ziemlich langweilig ist und man durch das helfen bei anderen, bzw die Hilfe von anderen zusätzlich lernt.
GotDamned is offline  
Old 10/28/2010, 15:04   #3




 
Wergez's Avatar
 
elite*gold: 192
Join Date: Jul 2008
Posts: 17,069
Received Thanks: 3,691
Wie wäre es in die richtige Section zu posten?
Wergez is offline  
Old 10/28/2010, 20:49   #4
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
Wow danke für die Kritik Wergez ...
und sorry das ich nur ein Mensch bin und mich auch vertun kann.
Btw ist das ein Tutorial also wieso nicht? Hier ist nicht definiert welche Tutorials hier stehen und welche nicht stehen dürfen
Imperial Blaze is offline  
Old 10/28/2010, 21:34   #5
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Im e*pvp coder Bereich gibt es eine extra Section für Tutorials

Und nun erklär mir den Unterschied zwischen Klasse und Funktion. :>

btw, alles was du zu Funktionen geschrieben hast (ja, es sind funktionen keine klassen) ist kompletter schwachsinn.
MoepMeep is offline  
Old 10/28/2010, 23:12   #6
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
Joa dann sag mir wo der Fehler liegt, wie gesagt sind es nur meine Ansichten und das was ich denke, es gibt nirgendwo eine Garantie das es richtig ist.

Sowas zu schreiben und keinen Verbesserungsvorschlag zu geben ist auch schwach, finde ich.
Imperial Blaze is offline  
Old 10/28/2010, 23:28   #7
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by Imperial Blaze View Post
Joa dann sag mir wo der Fehler liegt, wie gesagt sind es nur meine Ansichten und das was ich denke, es gibt nirgendwo eine Garantie das es richtig ist.

Sowas zu schreiben und keinen Verbesserungsvorschlag zu geben ist auch schwach, finde ich.
Es sind Funktionen, keine Klassen.
Es wird von oben nach unten kompiliert, aber nicht ausgeführt
Du tust so, als müsste man
Code:
 using namespace std;
unbedingt nutzen. Dabei würde auch ein std:: vor die entsprechenden Funktionen reichen. Das nutzen des namespace's ist natürlich die bessere Variante
Der Datentyp vor einer Funtkion ist auch nicht der klassentyp sondern ganz einfach der Rückgabewert der Funktion.
Code:
int x;
hat zumindest unter Visual Studio, welches du ja nutzt, direkt einen Wert, nämlich 0
In deinem letzten Code-Beispiel fehlt das Semikolon am ende.
MoepMeep is offline  
Thanks
1 User
Old 10/28/2010, 23:31   #8
 
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
Quote:
Originally Posted by Imperial Blaze View Post
Ein c++ Programm ist oft in verschiedene Klassen eingeteilt und im obigen Codeblock sehen wir solch eine Klasse.
Der Compiler liest eine Datei immer von oben nach unten.
Hier ein Codeblock von einer Datei mit zwei Klassen:
Ersetze die Wörter "Klasse" durch "Funktion" und es ist korrekt.

Quote:
Originally Posted by Imperial Blaze View Post
Auch wenn der Compiler von oben nach unten liest, ist main immer der Einstiegspunkt, sprich es wird zuerst der Code in der Main() Klasse ausgeführt (also das was in den Klammern steht) und dann von oben nach unten die anderen Klassen.
Nein! Die Main-Funktion gibt zwar den Einstiegspunkt an, aber nach der Main-Funktion wird das Programm beendet. Die anderen Funktionen werden nicht automatisch aufgerufen.
Außerdem sind das wieder Funktionen und keine Klassen.

Quote:
Originally Posted by Imperial Blaze View Post
int x = 5 würde der Variable den Wert 5 zuweisen (Fachwort: deklarieren)
Deklarieren heißt, du sagt, welchen Typ eine Variable hat. Wenn du der Variable direkt einen Wert zuweist, dann nennt man das die Initialisierung.
ms​ is offline  
Thanks
1 User
Old 10/28/2010, 23:44   #9
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
Danke ich werd alles korriegieren.
Imperial Blaze is offline  
Old 10/29/2010, 13:18   #10
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
update

// fehler behoben, andere kleine Verbesserungen ... bitte nochmal drüber gucken!!
Imperial Blaze is offline  
Old 10/29/2010, 17:55   #11
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by Imperial Blaze View Post
update

// fehler behoben, andere kleine Verbesserungen ... bitte nochmal drüber gucken!!
Du hast da teilweise immernoch Klasse stehen
Das Semikolon beim letzten Code-Beispiel fehlt auch noch.
MoepMeep is offline  
Old 10/30/2010, 11:20   #12
 
Imperial Blaze's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 858
Received Thanks: 603
//update
Threadtitel angepasst

Es ist mehr ein Tagebuch von einem Anfänger
Imperial Blaze is offline  
Old 10/31/2010, 23:42   #13
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
Anstatt solche unnützen tutorials zu schreiben könntest du mal deine schulden bei mir begleichen wie wärs damit?

Erinnert dich dieser thread an was?



Übrigens was du hier im tut schreibst lernt man innerhalb von minuten in jedem gescheiden buch.
Medix is offline  
Reply


Similar Threads Similar Threads
aion der wieder einstieg
10/23/2010 - Aion - 8 Replies
Hallo ich hab paar fragen zu Aion da ich demnächst wieder anfangen möchte 1. lvl anstieg muss man immer noch viel grinden, gab es nen xp anstieg zb doppel soviel exp oder so was ? 2. götterfestungs raid wie is die peformance ? 3. welchen server soll ich nehmen wen ich elyos spielen will ? 4. wie komm ich an gear zb wen ich lvl 50 oder 55 bin oder so . 5. pvp möglichkeiten ausser abyss !? mgf danke schonmal im voraus :)
WoW Robot Einstieg
02/14/2010 - WoW Bots - 14 Replies
Hiho, ich weiß nicht ob jemand von euch schon mal WoW Robot probiert hat zumindest will ich auch mal testen was Bots wirklich effektiv bringen. Daher hab ich mir gleich mal die Free Version von WoW Robot besorgt. So aber nun zu meinen fragen. Wie botte ich damit sicher? Wie hoch stehen die Wahrscheinlichkeiten doch erwischt und gebannt zu werden? Und hat wer ein paar Einstellungstipps zu Wow Robot. Danke schonmal :) :handsdown:
Der Einstieg
05/06/2009 - World of Warcraft - 2 Replies
Hi, bin auf eure Seite gestoßen und fand sie direkt sehr sympatisch. Viele der Beiträge hier sind sehr interessant und es gibt hier einige kompetente Leute. Ich möchte jetzt auch mal in das Thema "Modding" von WoW einsteigen, bin mir aber noch etwas unsicher und hoffe auf diesem Wege diese zu beseitigen ^^ Also, an und für sich kann es ja keine große Sache sein, die MPQ-Dateien anzupassen. Also mit WinMPQ z.B aufmachen, z. B eine .blp-Datei mit XnView zu exportieren, zu bearbeiten, zurück zu...
Welche Software zum Einstieg?
01/10/2007 - General Coding - 30 Replies
Ich wollte fragen, welches VB ihr mir zum Einstieg empfehlen könntet o. vielleicht auch insg. empfehlen könntet? Kenne mich mit VB überhaupt nicht aus, kann nur ein bischen Delphi. Wäre sehr erfreut über schnelle Antworten. :)



All times are GMT +1. The time now is 12:12.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.