c +/++ tutorial

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

mas93

BeitragSa, Jan 05, 2008 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank.

Nur.. Ich war gerade auf der Seite von deinem Link^^
Also das sieht da ja alles ziemlich trostlos aus.

Tja, da sieht man mal wies uns hier im Blitzforum gut geht!


mfg
marius
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

HyDr0x

Betreff: Erledigt (nicht ich, nur das Problem ^^)

BeitragSa, Jan 05, 2008 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwie check ichs mit dem Visual Studio net. Ist zwar in gewisser weise peinlich aber, Ich hab ein Hallo Welt Programm geschrieben und kanns net ausführen Embarassed
Wenn ich auf Start Debug , Compilen, Build usw. gehe zeigt er mir im unteren Output Fenster immer 1 Failed an oder das die exe des Hallo Welt Programms im Verzeichnis bei den Projekten fehlt. Wie soll die aber da sein wenn ich die doch gerade erst compilieren will Evil or Very Mad
Klingt für mich sehr unlogisch ...
Außerdem, was für eine Art von Template oder wie sich das nennt muss ich denn nehmen wenn ich nur ein simples Programm wie hallo Welt schreiben möchte? Visual Studio hat da ja 8 Auswahlmöglichkeiten. Von W32 Console Aplication über CLR Console Application bis hin zu Makefile Projekt. Wenn ich jetzt z.B. ein Win32 Console Application nehme enststehen automatisch 4 andere Files, in welcher File und wo da kann ich jetzt anfangen mit proggen??
Es ist zum verrückt werden. Warum muss alles nur so umständlich kompliziert sein ? BB zeigt doch das es anders geht Confused . (Bezogen auf die IDE nicht die Sprache C++ selbst)
Würde mich freun wenn ein wenigstens ein paar Fragen beantwortet werden. Das tut beschäftigt sin nur mit der Sprache nicht mit der IDE oder dem Compiler.


Es geht Juhu. Ich bin glücklich und hab mir nen Keks geschenkt ^^ Very Happy

The_Nici

BeitragSa, Jan 05, 2008 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Irgendwie check ichs mit dem Visual Studio net. Ist zwar in gewisser weise peinlich aber, Ich hab ein Hallo Welt Programm geschrieben und kanns net ausführen Embarassed
Wenn ich auf Start Debug , Compilen, Build usw. gehe zeigt er mir im unteren Output Fenster immer 1 Failed an oder das die exe des Hallo Welt Programms im Verzeichnis bei den Projekten fehlt. Wie soll die aber da sein wenn ich die doch gerade erst compilieren will Evil or Very Mad

Vll. hat das Programm keine Rechte, also es kompiliert, wird aber durch Windows wegen fehlender Rechte aufgehalten, lässt es das aus und will sie starten? Könnte möglich sein.
Falls du Vista hast: "Als administrator ausführen"
 

Dreamora

BeitragSa, Jan 05, 2008 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du das tab wechselst zu warnung - error kannst du schauen was schief lief.
failed heisst das compile or link net geht

ich würd ma sagen du hast versucht hallo welt zu machen und stdio net includiert oder so
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

HyDr0x

BeitragSa, Jan 05, 2008 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Es lag daran das ich Hallo Welt erst compilliere musste, direkt durch die Funktion Compillieren. Dann konnte ich es Builden. Danach konnte ich dann immer schön durch F5 diese beiden Vorgänge Visual Studio machen lassen. Ka warum ich es ersteinmal von "Hand" compillieren und builden musste bevor die Start funktion ging ... . PS: Ich benutzt XP
 

MasterK

BeitragDi, Jan 08, 2008 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
TheShadow hat Folgendes geschrieben:
Beginne am besten mit C - das ist einfacher...

Also ich rate grundsätzlich davon ab, mit C zu beginnen. Wenn man heute programmieren lernt, sollte man richtig programmieren lernen, und nicht üble hacks zu produzieren und mit Pointern um sich zu werfen, dass es nur so kracht (wortwörtlich).

eben WEIL viele mit C beginnen, kommt sowas bei raus:
TheShadow hat Folgendes geschrieben:
C++ dagegen kommt mir vor wie von einer anderen Welt - zumindest die Codes sehen furchtbar grauenhaft aus - ich konnte mich mit C++ noch nie anfreunden...

die leute "lernen" C, meinen, sie könnten es, haben auch alle tricksereien schön genutzt... und nun sollen sie objektorientiert und mit templates arbeiten. das kann nur schief gehen.

daher: zuerst lernen, wie man programmiert (wenn C und C++ zur auswahl stehen, dann letzteres). danach kann man sich mit C befassen, wenn man dieses braucht. und wer nicht mikrocontroller programmieren will oder auf speziellen embedded devices (oder andere spezielle sachen), der braucht C nicht wirklich. für anwendungsentwicklung ist c++ wesentlich besser geeignet (schon allein wegen bibliotheken wie Qt). oder man nimmt gleich sowas wie c#.
+++ www.masterk.de.vu +++
Lila FTW!
 

FredFeuerstein

BeitragMi, Jan 09, 2008 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
servus,

ich habe mit c++ angefangen und kann dies auch nur weiterempfehlen. wenn man mal c++ kann ist c auch keine große sache mehr, zumal c, wie schon erwähnt wurde, einfach nicht mehr zeitgemäß ist. natürlich gibt es fälle, welche auch schon angesprochen wurden, da läßt es sich nicht "vermeiden".
allgemein würde ich aber sagen man sollte eher "programmieren" lernen und nicht das programmieren mit einer bestimmten sprache. im endeffekt ist objektorientiertes programmieren, objektorientiertes programmieren. sprich, man sollte lieber versuchen die idee hinter den entsprechenden konzepten zu verstehen als das umsetzen eines konzeptes mit einer bestimmten sprache. auf diese art und weise ist es wesentlich einfacher eine bzw. eine andere sprache zu lernen.

zum thema saubere programmierung: man kann mit "jeder" sprache sauberen code produzieren (zumindest mal mit denen die ich kenne), kommt eben auf den programmierer an. heutzutage ist es auch meistens nicht mehr notwendig "unsauber" zu programmieren nur um ein paar millisekunden zu gewinnen, diesen job sollte eigentlich der compiler übernehmen. desweiteren sollte, meiner meinung nach, ein gut lesbarer code einem, um ein paar millisekunden, optimierter code vorgezogen werden (wenn es nicht wirklich darauf ankommt).

weiterhin würde ich zum programmieren von c++ bzw. c ein unix, vim (ja ist vielleicht schon etwas oldschool) oder eclipse und g++ bzw. gcc vorziehen (ist alles kostenlos und bei unix meistens "standardmäßig" installiert bzw. dabei, bis auf eclipse). allerdings gibt es eclipse und vim auch für windows, compiler mäßig kenne ich mich dort nicht so wirklich aus, aber hab eh eine "kleine" aversion gegen micrsoft und kann jedem deswegen nur unix ans herz legen.
was die kompatibiliät angeht, c++ standard nutzen, das ein oder andere compiler flag setzen, alle warnigs fixen, dann hat man meistens wenig probleme. wenn doch, das entsprechende man file liefert meistens die nötige antwort.

was makefiles angeht, finde ich persönlich ganz praktisch, wenn vielleicht auch nicht mehr ganz zeitgemäß (hab mich schon lange nicht mehr damit beschäftigt). make ist wirklich eine sache für sich aber auch ein relativ mächtiges werkzeug.

was bücher angeht kann ich auch nur noch mal auf galileo open books verweisen. tutorials gibt es tausende, kommt halt drauf an nach was man genau sucht (welche wirklich für einsteiger sind, sorry, kein plan), englisch ist auf jedenfall ein muß Wink.
 

Dreamora

BeitragMi, Jan 09, 2008 0:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du für Linux programmieren willst, fang mit C++ an.

Wenn du für Windows programmieren willst, schau dir C# an und wenn du vor hast das ganze ma beruflich zu machen und net einer von 50 Leuten mit "angeblichem" C++ wissen sein willst sondern mit etwas was in der Industrie tatsächlich gebraucht wird, lern java
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kernle 32DLL

BeitragMi, Jan 09, 2008 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will schon seit mehreren Jahren C++ lernen, und genau wie bei B3D hab ich nach allden Jahren jetzt den Durchbruch *gg*. Die Entscheidung C oder C++ zu lernen ist so ne Sache.. die einen sagen das, die anderen das... anscheinend sollte man beides können lol.

Letzendlich würde ich mich durch verschiedene Tutorials arbeiten, und vor allem darauf achten das man ein AKTUELLES Buch nimmt... Ich hab hier z.b. eins von 1999, und das ist über Visual C++ 6. Visual C++ 6 ist üprigens ein gutes Stichwort um den Unterschied zwischen Kompilern zu zeigen... Zitat:

Ogre 3D Wiki hat Folgendes geschrieben:
Microsoft Visual C++ 6 (SP3+)

Ogre does not provide support for VC6. It's from 1998, and rather old. It does not support ISO C++. It will only cause you pain.
It's recommended to use Visual C++ 2005 Express (also called VC8) instead.


Was ISO c++ heiß kann hier wer anders erklären *gg*

Grüßle:
Kernle

PS: Ja, Java ist auch sehr gefragt ^^ Kenne wen der das beruflich macht...

PS: Ein grandioses Tutorial: http://www.cplusplus.com/doc/tutorial/
Man sollte nur ziemlich gut Englisch können Wink
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

Randall Flagg

BeitragMi, Jan 09, 2008 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, VC6 hat mich auch aufgeregt. Damals hatte ich es testweise installiert, wollte die iostream.h laden und es ging nicht!!! Boah habe ich mich da aufgeregt, da habe ich dann auch VC++ 2005 installiert, da war alles wieder so, wie es sein sollte... Gott sei Dank
Meine Parodien & Geschichten

Jolinah

BeitragMi, Jan 09, 2008 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Beruflich wird C# oder VB.NET auch immer häufiger eingesetzt. Nachteil, aber zugleich auch Vorteil bei .NET ist halt das Framework (aber bei Java benötigt man ja auch eines). Mit der Platform-Unabhängigkeit sieht es noch nicht so gut aus, dank dem "Mono"-Projekt läuft aber ein Grossteil der Anwendungen auch unter Linux.

Für Windows-Anwendungen kann ich C# jedoch nur empfehlen. Ich persönlich finde es produktiver als C++, da man dank dem sehr umfangreichen Framework (,das ständig erweitert wird, und automatisch bei jedem Projekt "mitgelinkt" wird,) schneller Erfolge erzielt. Ausserdem gibts bei .NET ein automatisches Speichermanagment, so muss man sich nicht selber darum kümmern Speicher wieder freizugeben etc.. Natürlich gibts auch unzählige C++ Libs mit denen man dann genau so schnell Erfolge erzielen kann, aber Anfänger müssen die Libs erstmal finden / erwerben und anschliessend ins Projekt einbinden (woran viele Anfänger schon scheitern).

Bei C# hat man so ein bisschen den Blitz-Effekt. Fast alles was man braucht ist schon integriert und kann sehr einfach verwendet werden. Auch finde ich die Syntax an sich bei C# super, aber das ist Geschmackssache. Die IDE (Visual Studio) ist auch eine der besten, und ist nun sogar gratis erhältlich (Express Versionen, mit eingeschränktem Funktionsumfang).

Damit will ich aber keinesfalls C++ oder eine andere Sprache schlecht reden. Es schadet bestimmt nicht C++ zu lernen. Im Gegenteil, bei C++ lernt man wahrscheinlich viel mehr. Aber ich sehe einfach dass C# bzw .NET im beruflichen Umfeld stark am kommen ist (zumindest in der Schweiz).


PS: Ich gebe zu, etwas in .NET und Visual Studio verliebt zu sein Very Happy Aber im Moment kenne ich wirklich nichts besseres zur Windows-Anwendungsentwicklung, C# verwende ich auch beruflich Tag für Tag. Und mit Microsoft hat das nichts zu tun, selbst wenn es von Novell oder Hobbyentwicklern etc. wäre, würde ich .NET lieben, es geht hier wirklich nur um das Produkt Wink

TheShadow

Moderator

BeitragMi, Jan 09, 2008 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde NET ist extreeeem umfangreich - so dass der Anfang verdammt schwer fällt und man von Dokumentation erschlagen wird. Wenn ich mich an QBasic erinnere - damals war noch alles "einfacher" und
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

#Reaper

Newsposter

BeitragDo, Jan 10, 2008 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
TheShadow hat Folgendes geschrieben:
Ich finde NET ist extreeeem umfangreich - so dass der Anfang verdammt schwer fällt und man von Dokumentation erschlagen wird. Wenn ich mich an QBasic erinnere - damals war noch alles "einfacher" und


Packetlost? ^^ Wink

Ich "lerne" nun auch endlich mal C++ in der neuen Schule. "Lernen" steht in Anführungsstrichen, weil ich/wir (meine Klasse) bislang nicht viel gelernt haben. Das einzigste was mir nun neu ist, ist, dass man in C++ einen Pfeil (->) anstelle eines Punktes (den Pfeil finde ich echt schlimm...) wie in BlitzBasic bei OOP verwendet. (Nein, wir haben noch kein OOP, sondern das ist nur von dem Borland C++ Builder 5 *hust* *aufreg*).
Ich würde sehr gerne wenn C++ lernen, weil ich es auch für einen (hoffentlich) späteren Beruf sehr wichtig finde. Auch Java will ich ein wenig lernen. Für Bewerbungen bleiben mir nun aber nur gerade mal etwa ein halbes bis dreiviertel-Jahr. Sad Und ausgerechnet nun (in letzer Zeit) bin ich sowas von lernfaul... Embarassed
Naja, mal so ein wenig uninteressantes und unnützes OT-gelaber am Rande, was niemanden interessiert^^
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

FredFeuerstein

BeitragDo, Jan 10, 2008 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

wenn du vor hast das ganze ma beruflich zu machen und net einer von 50 Leuten mit "angeblichem" C++ wissen sein willst sondern mit etwas was in der Industrie tatsächlich gebraucht wird, lern java

würde sagen kommt immer drauf an was und wo man programmieren will, pauschalisieren würde ich das jedoch nicht so einfach. z.b. für spiele zu programmieren ist java nicht so der burner, weiterhin wird in der industrie auch noch viel alter fortran code benutzt usw., usw..

Zitat:

Ausserdem gibts bei .NET ein automatisches Speichermanagment, so muss man sich nicht selber darum kümmern Speicher wieder freizugeben etc.

kann sein das ich den absatz jetzt falsch interpretiere, aber unter c++ z.b. gibt es das prinzip eines smart pointers welcher auch dafür sorgt das ein nicht mehr benötigtes heap objekt gelöscht wird.

allgemein kann ich mich nur wiederholen, lern(t) lieber allgemein programmieren und nicht speziell c++ oder java oder c#, oder was weiß ich wie die noch alle heißen.

um noch mal auf die einzelnen sprachen zu kommen: würde sagen jede hat ihr spezielles einsatzgebiet und ihre existenz berechtigung (vielleicht nicht alle, aber viele Smile), deswegen ist es, wie schon oben erwähnt, meiner meinung nach, eine sache des einsatzgebietes. klar jeder hat vorlieben, wie auch ich, aber leider kann man es sich nicht immer aussuchen. ich meine, ich programmiere auch nicht freiwillig mit BlitzMax Wink Smile, was jetzt absolut keine bewertung von BlitzMax und Co. sein soll (also bitte nicht negativ auffassen).

Vertex

BeitragDo, Jan 10, 2008 2:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Solltest du kein Verständnis für OOP haben fängst du besser mit C an.
Der Galileo Verlag bietet dazu ein phantastisches und vor allem kostenloses Buch an:
C von A bis Z

Nehme ich pers. immer wieder gerne als Referenz.

Achja, und wenn du auf eine höhere Sprache umsteigen willst, dann empfehle ich dir C# und nicht C++. Ist sicherlich Geschmackssache aber beim Erlernen kam mir C# sehr intuitiv und durchdacht vor. Auch dazu gibt es ein hervorragendes Buch vom Galileo Verlag.

mfg olli
vertex.dreamfall.at | GitHub

Jolinah

BeitragDo, Jan 10, 2008 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
kann sein das ich den absatz jetzt falsch interpretiere, aber unter c++ z.b. gibt es das prinzip eines smart pointers welcher auch dafür sorgt das ein nicht mehr benötigtes heap objekt gelöscht wird.


Geschieht das automatisch, oder muss man so einen smart pointer selbst implementieren? Bei C++ bin ich leider noch lange kein Profi... Wink Mit der automatischen Speicherverwaltung meinte ich den Garbage Collector von .NET.

Zitat:
Das einzigste was mir nun neu ist, ist, dass man in C++ einen Pfeil (->) anstelle eines Punktes (den Pfeil finde ich echt schlimm...) wie in BlitzBasic bei OOP verwendet.


In C++ gibt es den Punkt auch. Ob Pfeil oder Punkt verwendet wird hängt davon ab, ob du mit Zeigern oder direkt mit Objektvariablen arbeitest. Soviel ich weiss, ist der Pfeil nur eine einfachere Schreibweise zum dereferenzieren eines Zeigers und zum gleichzeitigen Zugreifen auf eine Eigenschaft oder Methode des Objekts.

Beispiel:
Code: [AUSKLAPPEN]

// Objekt auf Stack erstellen (kein Zeiger)
MyClass c;
c.Eigenschaft = 1;

// Zeiger auf c erstellen
MyClass *pc = &c;
pc->Eigenschaft = 2;

// Oder direkt auf dem Heap erstellen (auch ein Zeiger)
MyClass *pc2 = new MyClass();
pc2->Eigenschaft = 3;

// Statt dem Pfeil kann es auch so geschrieben werden:
// Es wird zuerst pc2 dereferenziert
(*pc2).Eigenschaft = 4;

delete pc2;
pc2 = 0;
 

#Reaper

Newsposter

BeitragDo, Jan 10, 2008 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, Interessant. Danke für die Info Jolinah.
Dann eine weitere kurze Zwischenfrage (ja, sry Wink): Sollte man lieber Pointer oder Referenzen (hießen doch so, oder?) verwenden? Ich schätze mal, Pointer sind schneller, oder?
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Arrangemonk

BeitragDo, Jan 10, 2008 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Was ISO c++ heiß kann hier wer anders erklären *gg*


iso heisst "international standards organisation"
und diese organisation hat versucht c zu normen, die neuste norm diesbezüglich heisst c99 und ist in den meissten compilern immernochnicht realisiert^^
ingeneur
 

MasterK

BeitragDo, Jan 10, 2008 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Jolinah hat Folgendes geschrieben:
Geschieht das automatisch, oder muss man so einen smart pointer selbst implementieren? Bei C++ bin ich leider noch lange kein Profi... Wink

Die standardbibliothek selbst bietet da afaik nur sehr mäßige templates. Besser sind da schon die smart pointer aus der boost bibliothek. Eine gute übersicht dazu gibts hier:
http://www.c-plusplus.de/forum...34971.html

generell kann man eigentlich sagen: c++ steht und fällt mit der verwendeten bibliothek.

#Reaper hat Folgendes geschrieben:
Dann eine weitere kurze Zwischenfrage (ja, sry Wink): Sollte man lieber Pointer oder Referenzen (hießen doch so, oder?) verwenden? Ich schätze mal, Pointer sind schneller, oder?

Wenn du ein Objekt dynamisch auf dem heap anglegst (mit new), bekommst du generell einen pointer zurück, da hast du gar nicht die wahl. referenzen verwendest du zB bei funktionsaufrufen und rückgabeparametern:
Code: [AUSKLAPPEN]
TollesObject &gibMirDasObject() {}

liefert dir eine referenz auf ein objekt (welches sich zB innerhalt der klasse befindet).
generell kann man eigentlich sagen, dass referenzen in c++ eher mau umgesetzt sind. aber sie sind nötig, wenn man nicht ständig dereferenzieren will. eine stream-klasse mit pointern statt mit referenzen wäre in der benutzung einfach nur ziemlich blöde.

um auf deine frage zu kommen: die geschwindigkeiten ist da erstmal komplett nebensächlich. ob pointer oder referenz entscheidet meistens der konkrete anwendungsfall.
+++ www.masterk.de.vu +++
Lila FTW!

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group