mikrocontroller.net

Forum: PC-Programmierung wie lang braucht man um c++ zu können


Autor: Zottel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mein cheff möchtte einige sachen in c++ programmiert haben.

wie lange brauch ich um in  c++ programmieren zu können
c ist vorhanden Die Projekte sind relativ einfach zu programmieren
aber sie müssen objektorientiert sein

Autor: Martin Noan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist individuell unterschiedlich. Es kommt weniger auf das Lernen von 
C++ an, als darauf, den Sprung zur objektorientierten Denkweise zu 
machen. Die Syntax von C++ unterscheidet sich nicht so grundlegend von 
C, als das man da großartige Lernzeiten einplanen müsste. Ich habe mich 
damit am Anfang auch sehr schwer getan, da ich jahrelang nur in C 
programmiert hatte und ich mir mit den ominösen "Objekten" einfach 
nichts anfangen konnte. Nachdem die objektorientierte Denkweise aber 
erst mal vorhanden war, kam das Verständnis für C++ von selbst.

Autor: Niklas Gürtler (erlkoenig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du also C gut kannst - also einigermaßen weißt wie ein Computer 
arbeitet - dürfte C++ kein Problem darstellen. Es sind halt einige neue 
Betrachtungsweisen notwendig: Daten sind in Objekten organisiert, 
Objekte haben Funktionen, Variablen, "Unterobjekte". Dann kannst du noch 
ein paar weitere nützliche Funktionen von C++ lernen - z.B. Templates, 
Vererbung. Das dürfte in einigen Stunden oder wenigen Arbeitstagen zu 
machen sein, dazu brauchst du noch etwas Erfahrung, wie man verschiedene 
Dinge am Besten macht. Da du ja die Vorgabe hast, dass es 
objektorientiert sein soll, scheint man schon Vorstellungen davon zu 
haben, wie das Programm aufgebaut sein soll - frag doch einfach mal 
denjenigen, für den das Programm ist, wie die Daten in Objekten 
organisiert sein sollen (z.B. - "Es gibt mehrere Kategorien von 
Messgrößen - du brauchst also für jede Kategorie ein Kategorie-Objekt, 
das wiederum eine Liste von Messgrößen-Objekten dieser Kategorie 
enthält, und jedes dieser Messgrößen-Objekte enthält ein Array von 
Messwerten. Außerdem soll es einen Grund-Objekttyp "Messgröße" geben, 
von denen alle anderen Messgrößen abgeleitet sind -> Vererbung.") dann 
kannst du dein Programm um diese Struktur herumbauen 
(Lade/Speicher-Routinen, Routinen für Datenmanipulation etc.). So hast 
du direkt einen "geleiteten" Einstieg.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zieh' dir den stroustrup rein - das dauert ~ ein monat. dann weißt du 
über sinn und unsinn der vererbungen bei kleinen projekten bescheid. und 
dass man in c++ so richtig wie die sau programmieren kann, dass nacher 
keiner mehr weiß was los ist :-)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man C kann, dann kann man vermutlich in spätestens drei Tagen auch 
C++ programmieren.

Um C++ zu verstehen brauchts meistens aber mehrere Jahre. Gerade 
C-Umsteiger tun sich gerne schwer, den ganzen OOP-Krimskrams einsortiert 
zu kriegen und neigen gerne dazu, auf Teufel komm raus von heute auf 
morgen jeden Mist irgendwie in ein Objekt zu stampfen.

Will sagen: Überleg dir vorher, ob das Projekt OOP rechtfertigt, sonst 
programmiere halt schlicht und einfach strukturiert wie bisher. Nur weil 
nachher 'C++' drauf steht, sind die Programme nicht automatisch 
'besser', in welcher Hinsicht auch immer.

Autor: Zottel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind kleinere sachen wo man auch mit c machen könnte das ist schon klar

aber mit LabVIEW und empededd C wurde auch klein angefangen und dann 
wurde es mehr.

Wir wollen halt die rein virtuelle Schnittstellen von c++ Nutzen
eventuell müssen dann die Klassen die das Intervace Implementieren
im laufe der Zeit erweitert werden

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zottel schrieb:
> sind kleinere sachen wo man auch mit c machen könnte das ist schon klar
>
> aber mit LabVIEW und empededd C wurde auch klein angefangen und dann
> wurde es mehr.
>
> Wir wollen halt die rein virtuelle Schnittstellen von c++ Nutzen
> eventuell müssen dann die Klassen die das Intervace Implementieren
> im laufe der Zeit erweitert werden

Ich würd mal sagen:
Gehs mit C++ an, das ist schon in Ordnung.
Aber rechne nicht damit, dass du ein vernünftiges OOP Konzept als OOP 
Anfänger aus dem Ärmel schütteln kannst nur weil du jetzt auf C++ 
umgestiegen bist. OOP ist hauptsächlich eine Philosophiefrage, C++ ist 
nur das Werkzeug, das dir hilft es umzusetzen.

Dein erstes C++ Programm wird hauptsächlich den C++ Compiler als 
besseren C Compiler benutzen. Maximal wird dir ein erfahrener OOP 
Programmierer 'C mit Klassen' zugestehen. Aber OOP ist es deswegen noch 
lange nicht. Der gedankliche Schritt von einem Haufen Strukturen und 
Funktionen hin zu sinnvoll (in einer Hierarchie) organisierten Klassen 
mit all seinen Konsequenzen sieht einfach aus, ist es aber nicht.

Autor: Nase (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Um C++ zu verstehen brauchts meistens aber mehrere Jahre. Gerade
>C-Umsteiger tun sich gerne schwer

Sag mal, Sven: Wie alt bist du eigentlich? Der Satz liest sich als 
stamme er von einem Computer-Veteran der ersten Stunde.(sooo alt bist du 
nicht, das weiß ich)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nase schrieb:
>>Um C++ zu verstehen brauchts meistens aber mehrere Jahre. Gerade
>>C-Umsteiger tun sich gerne schwer
>
> Sag mal, Sven: Wie alt bist du eigentlich? Der Satz liest sich als
> stamme er von einem Computer-Veteran der ersten Stunde.(sooo alt bist du
> nicht, das weiß ich)

Das ist richtig, ich bin auch erst 19,5 Jahre alt :-)

Ich habe vor sieben Jahren oder so mit C angefangen und ich denke, ich 
kann behaupten, dass ich C beherrsche. Nicht übertrieben, ich kenn nicht 
jeden Trick und so, aber ich bin in der Lage, die Werkzeuge in und um C 
vernünftig und effizient einzusetzen und 'guten' Quelltext zu 
produzieren (hinsichtlich Laufzeitverhalten, Wartung und so weiter).
Zudem hab ich regelmäßig Kontakt zu und ellenlange Diskussionen mit 
einigen echten Veteranen, ich bezeichne das mal als 'Mentor'... die sind 
zwar gerne im ersten Moment recht verbissen, aber wenn man dann mal 
nachforscht und -denkt, ist meistens auch was dran. Prima Lerneffekt und 
Kritik halt.

Seit drei Jahren arbeite ich mich nun in C++ ein. Ich kann zwar nun mit 
Objekten umgehen und in allen Farben und Formen herumvererben und so 
weiter. Aber ich kann wirklich nicht behaupten, dass ich mit den neuen 
Möglichkeiten bisher wirklich geschickt umgehen kann. Viel zu oft finde 
ich mich in Situationen wieder, in denen ich ein Problem mit OOP 
angegangen bin und es besser hätte bleiben lassen oder halt umgekehrt.
Meine C++-Programme wirken einfach nicht 'rund'.

Zu dem Satz da: Das war ein Zitat eines Veteranen, frei aus dem 
Gedächtnis.

Autor: Bernd Wiebus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin Noan.

> Das ist individuell unterschiedlich. Es kommt weniger auf das Lernen von
> C++ an, als darauf, den Sprung zur objektorientierten Denkweise zu
> machen.

Aber genau dieser Sprung ist der Knackpunkt. Ich, und wohl viele andere 
auch,schaffen den einfach nicht. Ich habe dann irgendwann wegen zu doof 
das Handtuch geworfen.

Das heisst: Manche lernen C++ nie.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic

http://www.dl0dg.de

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven P. schrieb:

> Meine C++-Programme wirken einfach nicht 'rund'.

Gib dir einfach noch 2 oder 3 Jahre. Das wird schon noch. Irgendwann hat 
man auch in schwierigen Situationen die Tricks heraussen, wie man sich 
mit einer geschickten Hierarchie das Leben extrem vereinfachen kann. 
Wann es sinnvoll ist eine Hilfsklasse einzuführen und wann man einfach 
nur Overkill betreibt. Ganz wichtig auch: Selbstkritik betreiben. Wenn 
es möglich ist, versuchen die Hierarchie abzuändern und nachzusehen, wo 
eine eine Änderung hinführt. So hab ich eigentlich am Allermeisten 
gelernt: In einem 'Spielsystem' an dem ich nach Herzenslust Ideen 
ausprobieren konnte, rausfinden was gut funktioniert, was zwar gut 
aussieht aber auf lange Sicht sich nicht bewährt und was einfach nur 
grottenschlecht ist.

Diskussionen mit anderen Programmierern über Techniken und Verfahren 
sind natürlich der Oberhammer. Dagegen sehen Online Foren, Bücher, 
Journale einfach nur alt aus. Soviel wie in diesen Diskussionen kann man 
nirgends sonst, vor allem nicht in der Tiefe, lernen.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ich auch von "C mit Klassen" loskommen möchte:

Kann jemand ein Buch empfehlen, das eher Philosophie und Strukturierung 
behandelt als die Syntax der Sprache?

Gerne auch ganz ohne Sourcecode etc., nur Konzepte und dazu halbwegs 
reale Problemstellungen, die deutlich über "Die Flasche bringt den 
Korkenzieher mit." und "Ein Schiff und Auto sind Fahrzeuge, aber das 
Schiff hat keine Räder." hinausgehen und schrittweise objektorientiert 
gelöst und analysiert werden.

viele Grüße,
Tom.

Autor: Andre R. (ryan87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo du bei Philosophie und Strukturierung bist würde ich dir doch auch 
empfehlen mal ein paar Entwurfsmuster anzuschauen die die OOP Idee 
umsetzen.
Ein sehr gutes Buch dazu ist imho "Entwurfsmuster von Kopf bis Fuß" von 
O'Reilly. Die Beispiele darin sind zwar in Java (soweit ich mich 
erinnere), aber der syntaktische Unterschied ist ja zu C++ nicht die 
Welt. Und es ist wirklich unterhaltsam geschrieben.

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oops, das war der falsche link, der da ist ok:

Design Patterns. Elements of Reusable Object-Oriented Software.

http://www.amazon.de/Patterns-Elements-Reusable-Ob...

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, die Bücher werde ich mir mal ansehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.