ubuntuusers.de

C++ lernen (Grundfrage und Buchwahl)

Status: Gelöst | Ubuntu-Version: Kubuntu 11.10 (Oneiric Ocelot)
Antworten |

EgLe

Avatar von EgLe

Anmeldungsdatum:
29. Juli 2005

Beiträge: 315

Wohnort: BaWü

Hallo,

ich will mir endlich einen alten Traum erfüllen und ein wenig C++ lernen.

Benutze natürlich Linux zur Zeit Kubuntu 11.10 mit installiertem gcc bzw. g++ Compiler.

Nun bin ich noch auch der Suche nach einem "recht verständlichem Einsteigerbuch in C++.

Selbst habe ich mir schon einige Links zu diversen Grundkursen angesehen, dabei ist mir jedoch

auch schon die erste Frage und auch der bisherige Hindernissgrund aufgefallen warum ich noch kein Buch bestellt bzw. gekauft habe.

Gibt es in C++ verschiedene Versionen?

In diversen Onlinelinks werden gerade schön sichbar bei dem typischen "Hello world!"

Programm schon viele unterschiede erkennbar.

Das erste vomit ich noch zurechtkomme ist das inkludieren der Headerdaten dort wird oft mal von

#include <iostream.h>

oder

#include <iostream>

geredet, okay der GCC-Compiler auf meinem Linux mag es nicht wenn hinten noch der punkt mit dem h steht also.h,

damit kann ich leben und komme auch zurecht.

Aber bei vielen Beispielprogrammierungen bekommt man z.B. solche Texte bzw. dann Ausgaben:

1
2
3
4
5
6
7
#include <iostream.h>

int main()
 {
   cout << "Hello World!\n";
   return 0;
 }
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
test.cpp: In Funktion »int main()«:
test.cpp:5:4: Fehler: »cout« wurde in diesem Gültigkeitsbereich nicht definiert
test.cpp:5:4: Anmerkung: empfohlene Alternative:
/usr/include/c++/4.6/iostream:62:18: Anmerkung:   »std::cout«
egle@core2-quad:~/Programmierung/C -Programmierung$ g++ test.cpp -o test
test.cpp: In Funktion »int main()«:
test.cpp:5:4: Fehler: »cout« wurde in diesem Gültigkeitsbereich nicht definiert
test.cpp:5:4: Anmerkung: empfohlene Alternative:
/usr/include/c++/4.6/iostream:62:18: Anmerkung:   »std::cout«
egle@core2-quad:~/Programmierung/C -Programmierung$ 

Nun ich würde mich halt sehr Ärgern wenn ich ein Buch erwerbe und bei jedem Beispielcode ich solche öder ähnliche Fehlermeldungen erhalte.

Gibt es also beim Kauf eines Buches einen c++ versionstandart auf den ich achten muss, oder gibt es hier evtl. jemand der Bücher empfehlen kann (deutschsprachige) die mit dem jetzigen g++ und evtl. der nächsten Version(en) recht gut zusammenarbeiten und ich somit beim lernen nicht noch mehr Hürden zu knacken habe?


PS: bei diesem simplen Beispiel ist mir natürlich schon klar wie verschiedene Lösungen

aussehen könnten damit es Fehlerfrei durchkompiliert, nur bei einem Buch und wenn es mal wirklich

Tiefer in die Materie eingeht würde es halt problematischer sein..

Panke

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 133

Es gibt verschiedene Standards in C++. Der neuste ist aus dem letzten Jahr.

Wenn du ein Tutorium oder Buch siehst, dass #include <iostream***.h**> verwendet, weglaufen, das taugt nicht.

Der Urheber von C++, Bjarne Stroustroup, lehrt C++ als erste Sprache und hat ein Buch dazu rausgegeben. Das ist sicher nicht verkehrt. Kostenfrei im Netz findet man "Thinking in C++", das ist auch gut. Als deutsche Literatur kann man den hier empfehlen.

Darkstar999

Avatar von Darkstar999

Anmeldungsdatum:
21. September 2008

Beiträge: 324

Ich kann nur das Buch von meinem Prof empfehlen leicht verständlich und fängt von Grund auf an mit C und geht dann in C++ über und danach einige System spezifische Bücher;

http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1299?GalileoSession=63375310A5.tek-wU5U

mfg darkstar999

grumpy_grizzly

Avatar von grumpy_grizzly

Anmeldungsdatum:
26. Dezember 2011

Beiträge: 263

Wohnort: Stockholm

Ich hab den "C++ Primer" von Lippman et al. Gibt es auch ins Deutsche übersetzt. Laut amazon momentan nicht erhältlich (deutsche Ausgabe), bei ebay aber bestimmt zu finden. Das Buch hat allerdings an die 1000 Seiten. 😀

Inkane

Anmeldungsdatum:
17. Oktober 2010

Beiträge: 306

Soll das Buch denn auf Deutsch sein?

jakon Team-Icon

Lokalisierungsteam

Anmeldungsdatum:
16. November 2009

Beiträge: 419

Inkane schrieb:

Soll das Buch denn auf Deutsch sein?

EgLe schrieb:

[…] oder gibt es hier evtl. jemand der Bücher empfehlen kann (deutschsprachige) die mit dem jetzigen g++ und evtl. der nächsten Version(en) recht gut zusammenarbeiten und ich somit beim lernen nicht noch mehr Hürden zu knacken habe?

Bin übrigens für das Buch von Stroustrup. Habe es auch hier liegen und es ist wirklich gut. (War aber zum Zeitpunkt des Lesens kein Programmieranfänger, was sich natürlich auch auf meine Sichtweise einwirkt.

Edit: @EgLe: Wenn du irgendwo ein Tutorial oder Buch mit einem Hello-World-Programm findest, das du nicht kompilieren kannst, dann kannst du es gleich in Wärmeenergie umwandeln.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Darkstar999 schrieb:

Ich kann nur das Buch von meinem Prof empfehlen leicht verständlich und fängt von Grund auf an mit C und geht dann in C++ über und danach einige System spezifische Bücher;

Von sowas (ohne das spezielle Werk zu kennen) würde ich abraten.

C++ ist eine objektorientierte Sprache, und sollte nicht als C für Fortgeschrittene, sondern als Sprache mit anderen Paradigmen gelernt werden.

Viele Leute enden bei einem C/C++ - Mischmasch; das ist nicht gut.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

user unknown schrieb:

Von sowas (ohne das spezielle Werk zu kennen) würde ich abraten.

+1

Ich habe selber das Buch Praktische C++ Programmierung. Ich persönlich fand zwar auch, dass an einigen Stellen bei der Übsersetzung geschlampt wurde, würde das jedoch nicht so wichtig nehmen, wie die beiden Rezensoren auf amazon. Das englische Original wäre im Zweifel natürlich die bessere Wahl (ich hatte es mir spontan in einem Buchladen gekauft, ohne mich vorher zu informieren).

Darkstar999

Avatar von Darkstar999

Anmeldungsdatum:
21. September 2008

Beiträge: 324

user unknown schrieb:

Darkstar999 schrieb:

Ich kann nur das Buch von meinem Prof empfehlen leicht verständlich und fängt von Grund auf an mit C und geht dann in C++ über und danach einige System spezifische Bücher;

Von sowas (ohne das spezielle Werk zu kennen) würde ich abraten.

C++ ist eine objektorientierte Sprache, und sollte nicht als C für Fortgeschrittene, sondern als Sprache mit anderen Paradigmen gelernt werden.

Viele Leute enden bei einem C/C++ - Mischmasch; das ist nicht gut.

Naja für einen totalen Anfänger finde ich es gut erst mal von C nach C++ zu gehen da C++ auf C Basiert wie der Name schon sagt in den meisten Büchern über C++ gibt es nämlich das Problem das Sachen wie Zeiger Strukturen zu kurz kommen Das Buch von Herrn DR. Kaiser fängt bei Null an und geht schritt für schritt weiter und Beschreibt auch dann sehr schön was objektorientierte Programmierung ist und wo die Vorteile und der unterschied zu C ist so das Meiner Meinung nach die Mischmasch Gefahr gering ist und man sollte meiner Meinung nach auch als C++ Programmierer C verstehen!

mfg darkstar999

VincentVale

Avatar von VincentVale

Anmeldungsdatum:
11. Juni 2009

Beiträge: 317

Wohnort: Solingen

Ich Programmiere ja mittlerweile viel mehr Java und Scala, aberaus meiner C/C++ Zeit kann ich mich noch daran erinnern, das man doch einfach .h weglassen kann und stattdessen dann

#include <iostream>

using namespace std;

nimmt, somit sollte sich das doch erübrigen ob in dem Buch .h steht da man das ja nur kurz beachten muss. Ich persönlich, lerne ja meist eher durch die Bücher von O'Reilly Verlag, aber meist eher durch Onlinetexte.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Darkstar999 schrieb:

Naja für einen totalen Anfänger finde ich es gut erst mal von C nach C++ zu gehen da C++ auf C Basiert wie der Name schon sagt in den meisten Büchern über C++ gibt es nämlich das Problem das Sachen wie Zeiger Strukturen zu kurz kommen Das Buch von Herrn DR. Kaiser fängt bei Null an und geht schritt für schritt weiter und Beschreibt auch dann sehr schön was objektorientierte Programmierung ist und wo die Vorteile und der unterschied zu C ist so das Meiner Meinung nach die Mischmasch Gefahr gering ist und man sollte meiner Meinung nach auch als C++ Programmierer C verstehen!

Hui... eine ganz gefährliche Ansicht - aber durchaus verständlich, dass diese existiert und imho inhärent durch das (schlechte) Design von C++ bedingt. Schau Dir mal die Diskussion auf Pro-Linux zum Thema an - nicht, dass ich dem Autor "Entwickler" in allen Punkten zustimme¹, aber in einem hat er Recht: (modernes) C++ hat mit C nix zu tun! Durch das Sprachdesign kommt es eben mithin zu Deiner Einstellung, eben weil C++ zu einem Großteil C überdeckt. Aber genau diese Komponenten machen C++ zu dem Komplexitätsmonster, was es heute ist.

¹genauer gesagt kann ich ihm hinsichtlich seiner Basisaussagen und seiner Argumentation nicht zustimmen, denn seine Schlussfolgerungen sind schlicht falsch - so er denn welche vornimmt und nicht einfach ziellos Kritik an der Komplexität von C++ wegpropagiert.

Ich denke fast eher im Gegenteil tut sich jemand mit C++ sogar leichter, wenn er den C-Kram nicht vorneweg lernt.

Von didaktischen Aspekten einmal abgesehen suggerieren solche Werke vor allem auch, dass der Autor wenig Ahnung von der Materie hat. Denn mit so einem Aufbau lebt er dem Lernenden ja die urban legend "C++ = C + OOP" vor und hilft, diese These auch in Zukunft hochzuhalten. Insofern halte ich davon gar nichts und zweifel ganz ehrlich die Kompetenz eines solchen Autors an.

@VincentVale Ja, das mag für einen Großteil funktionieren - aber Exaktheit ist eine wesentliche Maxime im Kontext der Programmierung. Wenn ein Buch / Tutorial schon in so einem kleinen Sektor schlampt, dann womöglich auch bei wichtigeren und vor allem konzeptuellen Dingen?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Mit .h ist es alleine nicht getan. Als .h noch gängig war konnte man auch

1
#using namespace std

weglassen.

Darüber käme man leicht hinweg, wenn man ein 10 Jahre altes Buch bei ebay kauft, das statt 60€ dann nur 2 kostet (plus 7€ Versand). Aber in allerjüngster Zeit hat sich bei C++ doch viel getan, Stichworte C++0x und so weiter, so dass man doch zu einem brandneuen Werk raten muss - oder? Ich mache kein C++ mehr, und bin nicht auf dem Laufenden, sondern bekomme nur mit was man so aufschnappt.

Panke

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 133

Wichtig ist auch, dass es nicht reicht, den Sprachumfang von C++ zu lernen. Bei C++ ist es mindestens genauso wichtig, sich anzueignen, wann man welche Sprachelemente nutzt und wann nicht. Das bringt dir ein C++-Buch aus den 1990ern i.d.R. nicht bei.

Bei einem Buch, dass einem erst C vorwirft, inklusive C-Streams, C-Filehandling, Arrays mit wilder Zeigerarithmetik, bin ich der Meinung, dass man den Platz hätte besser nutzen können um idiomatisches C++ vorzustellen.

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

Kannst dir das hier ja mal ansehen.

Grüße Frink

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Prof. Frink schrieb:

Kannst dir das hier ja mal ansehen.

Nach einem Überfliegen würde ich sagen, dass das Ding hier genau das macht, was nicht empfehlenswert ist: Es stellt so ziemlich alles vor, auch Dinge, die man besser nicht benutzen sollte. Zudem ist es ziemlich alt, da nicht einmal der Name des neuen Standards korrekt im Vorwort auftaucht - das muss zwar nicht de facto "schlimm" sein, aber dann bekommt der Anfänger eben doch wieder viele wichtige und nun zum Standard gehörige Konzepte nicht zu sehen und eignet sich alten Kram an.

Antworten |