 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Wolfgang Keller Guest
|
Posted: Fri Aug 25, 2006 4:59 pm Post subject: Einführung in C(++) für Benutzer anderer Sprachen? |
|
|
Hallo,
so langsam dämmert mir, daß man ohne C(++)-Kenntnisse kaum eine Chance hat,
Dokumentationen und Beispiel-Code zu den weitaus meisten Bibliotheken und
Frameworks zu verstehen bzw. Fehlermeldungen auf den Grund gehen zu können.
X-(
Bisher habe ich mich ja gegen C gesträubt (hatte mit Pascal & Fortran
gelernt, benutze selbst nur Python), aber es geht anscheinend nicht anders.
Deshalb: Was gibt es an guter Einführungsliteratur in C(++), möglichst
plattform- und anwendungsneutral (z.B. Windows-APIs interessieren mich
nicht), für Leute mit geringfügigen Vorkenntnissen in anderen Sprachen?
Sowohl englisch- als deutschsprachiges ist ok.
Es kommt mir vor allem darauf an, die grundsätzliche Funktionsweise von C(++)
zu verstehen (also analytisch zu arbeiten), um dann eben API-Dokumentationen
und Beispiele, die für C(++) geschrieben wurden, auf Python umsetzen zu
können.
Das grundsätzliche Angebot ist ja einigermaßen unüberschaubar.
Danke im Voraus,
MfG,
Wolfgang Keller
--
My email-address is correct.
Do NOT remove ".nospam" to reply. |
|
| Back to top |
|
 |
Stefan Naewe Guest
|
Posted: Fri Aug 25, 2006 6:29 pm Post subject: Re: Einführung in C(++) für Benut zer anderer Sprachen? |
|
|
Wolfgang Keller schrieb:
| Quote: | Hallo,
so langsam dämmert mir, daß man ohne C(++)-Kenntnisse kaum eine Chance hat,
Dokumentationen und Beispiel-Code zu den weitaus meisten Bibliotheken und
Frameworks zu verstehen bzw. Fehlermeldungen auf den Grund gehen zu können.
X-(
Bisher habe ich mich ja gegen C gesträubt (hatte mit Pascal & Fortran
gelernt, benutze selbst nur Python), aber es geht anscheinend nicht anders.
Deshalb: Was gibt es an guter Einführungsliteratur in C(++), möglichst
plattform- und anwendungsneutral (z.B. Windows-APIs interessieren mich
nicht), für Leute mit geringfügigen Vorkenntnissen in anderen Sprachen?
Sowohl englisch- als deutschsprachiges ist ok.
Es kommt mir vor allem darauf an, die grundsätzliche Funktionsweise von C(++)
zu verstehen (also analytisch zu arbeiten), um dann eben API-Dokumentationen
und Beispiele, die für C(++) geschrieben wurden, auf Python umsetzen zu
können.
Das grundsätzliche Angebot ist ja einigermaßen unüberschaubar.
|
Entscheide dich.
Entweder C oder C++. Es gibt kein C(++) und auch kein C/C++.
Wenn du dich dann für C++ entschieden hast, kaufe "Accelerated C++" von
Andrew Koenig/Barbara E. Moo (jetzt auch Koenig?)
http://www.acceleratedcpp.com
/S
--
Stefan Naewe
stefan_DOT_naewe_AT_atlas_DOT_de |
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Fri Aug 25, 2006 6:30 pm Post subject: Re: Einführung in C(++) für Benut zer anderer Sprachen? |
|
|
Wolfgang Keller wrote:
| Quote: | Deshalb: Was gibt es an guter Einführungsliteratur in C(++), möglichst
plattform- und anwendungsneutral (z.B. Windows-APIs interessieren mich
nicht), für Leute mit geringfügigen Vorkenntnissen in anderen Sprachen?
Sowohl englisch- als deutschsprachiges ist ok.
|
Wer schon programmieren kann, für den sind IMHO die Standardwerke
Kernighan/Ritchie, Programmieren in C ("K&R")
Stroustrup, Die C++ Programmiersprache
gut geeignet. Du brauchst ja dann keine Einführung, die damit anfängt,
dir den Unterschied zwischen 0 und 1 zu erklären.
Zum Lesen von API-Dokumentationen sollte der K&R ausreichen. K&R ist ein
handliches Büchlein, was du in einer Woche durchbekommst (~250 Seiten),
vielleicht auch einfach mal in der Bibliothek schauen. C++ brauchst du
"nur", wenn du C++-Klassenbibliotheken verwenden willst; der Stroustrup
ist ein tüchtiger Klopper und für den Anwendungszweck "API-Doku
verstehen" etwas überdimensioniert.
Stefan |
|
| Back to top |
|
 |
Tibor Pausz Guest
|
Posted: Fri Aug 25, 2006 8:46 pm Post subject: Re: Einführung in C(++) für Benut zer anderer Sprachen? |
|
|
Wolfgang Keller wrote:
| Quote: | Deshalb: Was gibt es an guter Einführungsliteratur in C(++)
|
Accelerated C++, Koenig & Moo
C++ Primer, Lippman & Lajoie
Das sind bloß zwei Bücher die grundlegendes zu C++ erklären. Es gibt
noch sehr viel mehr Literatur, aber das hängt davon ab, wieviel C++ Du
verstehen/programmieren willst.
Um "The C++ Programming Language, Stroustrup" kommt man eigentlich auch
nicht herum.
Empfehlenswert sind weiterhin fürs Programmieren:
The C++ Standard Library, Josuttis
Excpetional C++, Sutter
More Exceptional C++, Sutter
C++ Templates, Vandervorde & Josuttis |
|
| Back to top |
|
 |
Elcaro Nosille Guest
|
Posted: Sat Aug 26, 2006 3:22 am Post subject: Re: Einführung in C(++) für Benut zer anderer Sprachen? |
|
|
| Quote: | Entscheide dich.
Entweder C oder C++. Es gibt kein C(++) und auch kein C/C++.
|
Au weia!
Es geht ihm um das Leesen von Code, nicht um das Schreiben; also
sind unterschiedliche Methodiken der Entwicklung unerheblich. |
|
| Back to top |
|
 |
Ernst Sauer Guest
|
Posted: Sat Aug 26, 2006 11:30 pm Post subject: Re: Einführung in C(++) für Benutzer anderer Sprachen? |
|
|
Wolfgang Keller wrote:
| Quote: | Hallo,
Es kommt mir vor allem darauf an, die grundsätzliche Funktionsweise
von C(++) zu verstehen (also analytisch zu arbeiten), um dann eben
API-Dokumentationen und Beispiele, die für C(++) geschrieben wurden,
auf Python umsetzen zu können.
|
Sofern Du nicht ca. 1 Jahr Zeit hast um Dich in C++ einzuarbeiten,
empfehle Dir das Buch C-Befehlsbibliothek von Herbert Schildt.
Als Umsteiger von Fortran und Pascal empfehle ich Dir zunächst
eine Einarbeitung in C, denn bei C++ dauert es lange bis Du Erfolge hast.
Bei C geht das sehr viel schneller und Du wirst schnell die Vorteile
erkennen.
Ein Fortran- und Pascal-Programme kannst Du
vergleichsweise schnell nach C übertragen, denn den grundsätzlichen
Ablauf kannst Du nahezu 1 zu 1 übertragen. Nach C++ geht das
nicht so ohne weiteres, da musst Du Dir ein grundsätzlich anderes
Konzept überlegen und lange darüber nachdenken.
Tust Du das nicht, kommt ein schreckliches C++ Programm heraus.
Außerdem kann man sehr wohl C und C++ mischen, ich mache das
ständig. Ich arbeite mit Visual C++ und schreibe die meisten
Programmteile in C, die entsprechenden Dateien bekommen den
Namen xyz.cpp und alles läuft prima. C++ nehme ich nur dort,
wo es unbdingt nötig ist, z.B. dort, wo ich die MFC nutze.
Wennn Du Dich dann etwas eingearbeitet hast, wirst Du erkennen
welchen Weg Du weiter gehen willst.
Ich will C++ nicht schlecht reden, aber die Sprache liegt auf einer
ganz anderen Ebene als z.B. das alte Fortran.
C++ ist die richtige Sprache für umfangreiche Projekte an denen
mehrere Programmierer arbeiten, oder wenn einem nichts anderes
übrig bleibt, z.B. weil man die MFC nutzen will/muss.
Für kleinere und für 1-Mann-Projekte würde man bei C++ in
manchen Bereichen mit Kanonen auf Spatzen schiessen.
Mit Gruß
Ernst Sauer |
|
| Back to top |
|
 |
Stefan Ram Guest
|
Posted: Sun Aug 27, 2006 5:15 am Post subject: Re: Einfuehrung in C(++) für Benutzer anderer Sprachen? |
|
|
Wolfgang Keller <wolfgang.keller.nospam (AT) gmx (DOT) de> writes:
| Quote: | Deshalb: Was gibt es an guter Einführungsliteratur in C(++), möglichst
plattform- und anwendungsneutral (z.B. Windows-APIs interessieren mich
nicht), für Leute mit geringfügigen Vorkenntnissen in anderen Sprachen?
|
Die folgende Seite nennt einige Kriterien zur Beurteilung von
C++-Büchern und verweist dann ihrerseits noch einmal auf eine
andere Seite mit allgemeineren Kriterien zur Beurteilung von
Programmierbüchern.
http://www.purl.org/stefan_ram/pub/c++-lehrgangkriterien
So hast Du, wenn Du ein C++-Buch in der Hand hältst, ein paar
Anhaltspunkte zur Beurteilung des Werkes. |
|
| Back to top |
|
 |
Tibor Pausz Guest
|
Posted: Sun Aug 27, 2006 1:09 pm Post subject: Re: Einführung in C(++) für Benut zer anderer Sprachen? |
|
|
| Quote: | Sofern Du nicht ca. 1 Jahr Zeit hast um Dich in C++ einzuarbeiten,
empfehle Dir das Buch C-Befehlsbibliothek von Herbert Schildt.
^^^^^^^^^^^^^^^ |
Autsch, lies Dir mal auf www.accu.org die Rezensionen zu Schildts
Büchern durch. |
|
| Back to top |
|
 |
Wolfgang Keller Guest
|
Posted: Sun Aug 27, 2006 9:22 pm Post subject: Re: Einführung in C(++) für Benutzer anderer Sprachen? |
|
|
Hallo,
| Quote: | Als Umsteiger von Fortran und Pascal
|
Äh, Mißverständnis.
Ich habe nicht vor, C oder C++ selbst zu verwenden, sondern ich verwende
selbst ausschließlich Python.
Kenntnisse in C und C++ benötige ich ausschließlich, um eben
API-Dokumentationen und entsprechenden Beispielcode sowie Fehlermeldungen
verstehen zu können. Denn viele Python-Module haben gar keine eigene
Dokumentation, sondern verweisen auf die entsprechende C- bzw.
C++-Dokumentation.
MfG,
Wolfgang Keller
--
My email-address is correct.
Do NOT remove ".nospam" to reply. |
|
| Back to top |
|
 |
Elcaro Nosille Guest
|
Posted: Mon Aug 28, 2006 3:41 am Post subject: Re: Einfuehrung in C(++) für Benutzer and erer Sprachen? |
|
|
| Quote: | Die folgende Seite nennt einige Kriterien zur Beurteilung von
C++-Büchern und verweist dann ihrerseits noch einmal auf eine
andere Seite mit allgemeineren Kriterien zur Beurteilung von
Programmierbüchern.
http://www.purl.org/stefan_ram/pub/c++-lehrgangkriterien
So hast Du, wenn Du ein C++-Buch in der Hand hältst, ein paar
Anhaltspunkte zur Beurteilung des Werkes.
|
Ich find diese Anhaltspunkte spiegeln deine Prioritäten wieder, sind
aber für einen Einsteiger überwiegend drittrangig. Da spielt die didak-
tishe Qualität eine größere Rolle. Dein Hang zum Formalismus und die
Art wie Du die Norm-konformität deines Wissens präsentierst ist schon
ziemlich abgedreht.
Der Knaller sind ja Argumente wie:
* Als Standardtyp für Gleitkommawerte sollte "double" eingeführt werden
(und nicht "float").
* Der Text sollte eine weitgehend an den Standard angelehnte Terminologie
(z.B.: „Objekt“ als “region of storage ”) verwenden. |
|
| Back to top |
|
 |
kanze Guest
|
Posted: Mon Aug 28, 2006 5:28 pm Post subject: Re: Einführung in C(++) für Benutzer anderer Sprachen? |
|
|
Ernst Sauer wrote:
| Quote: | Wolfgang Keller wrote:
Es kommt mir vor allem darauf an, die grundsätzliche Funktionsweise
von C(++) zu verstehen (also analytisch zu arbeiten), um dann eben
API-Dokumentationen und Beispiele, die für C(++) geschrieben wurden,
auf Python umsetzen zu können.
Sofern Du nicht ca. 1 Jahr Zeit hast um Dich in C++ einzuarbeiten,
empfehle Dir das Buch C-Befehlsbibliothek von Herbert Schildt.
|
Das würde ich in keinem Fall empfehlen. Gut schreiben kann Herr
Schildt; leiter kennt er die Sprache nur oberflächlich. Seine
Bücher sind voll von Fehlern.
Wenn man schone Fortran und Pascal kennt, kommt man mit dem
Kernighan und Richie gut zurecht, mindestens für das C.
| Quote: | Als Umsteiger von Fortran und Pascal empfehle ich Dir zunächst
eine Einarbeitung in C, denn bei C++ dauert es lange bis Du
Erfolge hast. Bei C geht das sehr viel schneller und Du wirst
schnell die Vorteile erkennen.
Ein Fortran- und Pascal-Programme kannst Du vergleichsweise
schnell nach C übertragen, denn den grundsätzlichen Ablauf
kannst Du nahezu 1 zu 1 übertragen.
|
Außer bei Zeigern.
| Quote: | Nach C++ geht das nicht so ohne weiteres, da musst Du Dir ein
grundsätzlich anderes Konzept überlegen und lange darüber
nachdenken. Tust Du das nicht, kommt ein schreckliches C++
Programm heraus.
Außerdem kann man sehr wohl C und C++ mischen, ich mache das
ständig. Ich arbeite mit Visual C++ und schreibe die meisten
Programmteile in C, die entsprechenden Dateien bekommen den
Namen xyz.cpp und alles läuft prima. C++ nehme ich nur dort,
wo es unbdingt nötig ist, z.B. dort, wo ich die MFC nutze.
Wennn Du Dich dann etwas eingearbeitet hast, wirst Du erkennen
welchen Weg Du weiter gehen willst.
|
Er hat gesagt, dass er zur Zeit hauptsächlich in Python
arbeitet. Also denke ich nicht, dass er so leicht auf Klassen
verzichten will.
| Quote: | Ich will C++ nicht schlecht reden, aber die Sprache liegt auf
einer ganz anderen Ebene als z.B. das alte Fortran.
|
Tut auch viel mehr.
| Quote: | C++ ist die richtige Sprache für umfangreiche Projekte an
denen mehrere Programmierer arbeiten, oder wenn einem nichts
anderes übrig bleibt, z.B. weil man die MFC nutzen will/muss.
Für kleinere und für 1-Mann-Projekte würde man bei C++ in
manchen Bereichen mit Kanonen auf Spatzen schiessen.
|
Kommt darauf an. C++ lernen, um zwei 100-zeilige Programme zu
schreiben, da gebe ich dir Recht; dass lohnt sich nicht. Wenn
man aber einmal C++ kennt, findet man auch seine Vorteile in
kleineren Programmen. (Immerhin: wenn die ganze Anwendung unter
100 Zeilen Code ist, benutze ich häufiger AWK als C++.)
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 |
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Mon Aug 28, 2006 9:41 pm Post subject: Re: Einfuehrung in C(++) für Benutzer and erer Sprachen? |
|
|
Elcaro Nosille wrote:
| Quote: | Die folgende Seite nennt einige Kriterien zur Beurteilung von
C++-Büchern und verweist dann ihrerseits noch einmal auf eine
andere Seite mit allgemeineren Kriterien zur Beurteilung von
Programmierbüchern.
http://www.purl.org/stefan_ram/pub/c++-lehrgangkriterien
So hast Du, wenn Du ein C++-Buch in der Hand hältst, ein paar
Anhaltspunkte zur Beurteilung des Werkes.
Ich find diese Anhaltspunkte spiegeln deine Prioritäten wieder, sind
aber für einen Einsteiger überwiegend drittrangig.
[snip]
Der Knaller sind ja Argumente wie:
* Als Standardtyp für Gleitkommawerte sollte "double" eingeführt werden
(und nicht "float").
|
Als Grund dahinter vermute ich als Folgenden: double statt float zu
benutzen hat auf heutiger Architektur keinerlei Nachteile gegenüber
float, jedoch den immensen Vorteil der Genauigkeit. Wer das nicht
weiß und in seinem Buch float einführt, ohne darauf hinzuweisen, dass
man in der Praxis fast immer double verwenden möchte, scheint entweder
fachlich nicht qualifiziert genug zu sein oder lebt im letzten
Jahrhundert. Das läßt natürlich auf andere Dinge, die im Buch behandelt
werden, schließen.
So ganz Unrecht hat Stefan damit nicht.
| Quote: | * Der Text sollte eine weitgehend an den Standard angelehnte Terminologie
(z.B.: „Objekt“ als “region of storage ”) verwenden.
|
Nunja, dieses Argument ist vielleicht etwas übertrieben. Natürlich
sollte ein Buch nicht Objekte und Klassen vermischen, aber wenn es
Objekte als "Instanz einer Klasse" beschreibt, reicht das (besonders für
einen Anfänger) allemal aus.
Zu dem Thema "Standard-Vernarrtheit" habe ich allerdings auch noch etwas
zu sagen. Ich kenne Programmierer, die seit *vielen* Jahren mit MS
Visual C++ programmieren und MFC (und damit auch wirklich den C++ Teil
vom MSVC++ und nicht nur C) verwenden, aber *keinerlei* Ahnung von
std::vector, std::string, <algorithm>, Iteratoren, Templates, etc. pp.
zu haben scheinen. Ich finde, man sollte von der Sprache, die man
benutzt, wenigstens ein gewisses Grundwissen besitzen, und da zähle ich
bei C++ die oben genannten Dinge hinzu.
Bücher, die das Programmieren einer Sprache anhand von
herstellerspezifischen Tools und Möglichkeiten beibringen, sind meiner
Meinung nach nur dazu da, die Programmierer an diese Tools von Anfang
an zu binden. (Natürlich muss dem Leser trotzdem erklärt werden, wie
er seine Beispiele überhaupt compiliert kriegt.)
Da ist mir ein Buch, das C++ lehrt, aber leichte inhaltliche Fehler
aufweist, 1000 mal lieber.
MfG,
Daniel |
|
| Back to top |
|
 |
Tibor Pausz Guest
|
Posted: Mon Aug 28, 2006 10:24 pm Post subject: Re: Einfuehrung in C(++) für Benutzer and erer Sprachen? |
|
|
Daniel Albuschat wrote:
| Quote: | Als Grund dahinter vermute ich als Folgenden: double statt float zu
benutzen hat auf heutiger Architektur keinerlei Nachteile gegenüber
float,
|
Das ist aber eine ziemlich gewagte Behauptung, da sie extrem von
verwendeten Compiler/Prozessor abhängig ist. Extrembeispiel dürfte Cell
BE sein, da beträgt der Unterschied ca. Faktor 10. |
|
| Back to top |
|
 |
Ernst Sauer Guest
|
Posted: Tue Aug 29, 2006 12:20 am Post subject: Re: Einführung in C(++) für Benutzer anderer Sprachen? |
|
|
Tibor Pausz wrote:
| Quote: | Sofern Du nicht ca. 1 Jahr Zeit hast um Dich in C++ einzuarbeiten,
empfehle Dir das Buch C-Befehlsbibliothek von Herbert Schildt.
^^^^^^^^^^^^^^^
Autsch, lies Dir mal auf www.accu.org die Rezensionen zu Schildts
Büchern durch.
|
Ich habe nur von einem Buch gesprochen und das fand ich sehr gut,
vor allem weil darin recht konkrete Beispiele zu finden sind, auch größere.
Schildts Buch zu C++ fand ich aber auch schlecht.
Rezensionen interessieren mich nur am Rande, ich gehe in die
Bücheri und schaue mir die Bücher genau an.
Mit Gruß
Ernst Sauer |
|
| Back to top |
|
 |
Stefan Ram Guest
|
Posted: Tue Aug 29, 2006 2:11 am Post subject: Re: Einfuehrung in C(++) für Benutzer anderer Sprachen? |
|
|
Daniel Albuschat <daniel (AT) happy (DOT) viming.de> writes:
| Quote: | Als Grund dahinter vermute ich als Folgenden: double statt float
|
Ich dachte daran, daß "d == 3.7" nach "d = 3.7" garantiert
ist, falls d double ist, und daß die Sprache so für Anfänger
einfacher wird, als wenn man ohne Grund noch weitere Datentypen
(hier: float) mit komplizierteren Gesetzmäßigkeiten einführt.
#include <iostream>
#include <ostream>
int main()
{ float const f = 3.7;
double const d = 3.7;
::std::cout <<( f == 3.7 )<< '\n';
::std::cout <<( d == 3.7 )<< '\n'; }
0
1
Die erste "0" ist allerdings implementationsspezifisch. Sie
ergab sich mit gcc, könnte aber bei anderer Konfiguration oder
Umgebung auch eine "1" sein. Wenn Anfänger erst einmal alles
mit "double" machen, dann müssen sie sich darüber eben gerade
nicht den Kopf zerbrechen.
| Quote: | Nunja, dieses Argument ist vielleicht etwas übertrieben. Natürlich
sollte ein Buch nicht Objekte und Klassen vermischen, aber wenn es
Objekte als "Instanz einer Klasse" beschreibt, reicht das (besonders für
einen Anfänger) allemal aus.
|
Die Erklärung, daß Objekte Exemplare von Klassen sind, steht
so in der Spezifikation der Programmiersprache Java. In C und
C++ sind Objekte Speicherbereiche.
Jemanden, der C++ lernen will, dies an Hand der Begriffe einer
anderen Programmiersprache (Java) zu vermitteln, wird
erfahrungsgemäß früher oder später zu begrifflichen
Inkonsistenzen führen. Aus ähnlichen Gründen ist es auch
komplizierter zu lügen als die Wahrheit zu sagen: Man muß dann
andere Begriffe auch noch umbiegen, damit sie dazu passen, und
verheddert sich irgendwann einmal.
Ich schlage also vor, die Begriffe von C++ zu verwenden, weil
das letzlich einfacher ist. |
|
| Back to top |
|
 |
Powered by phpBB © 2001, 2006 phpBB Group
|