Neuling braucht Hilfe :P
-
HansKlaus schrieb:
ich würde dir c/c++ von ulrich kaiser empfehlen,
An einem Buch mit "C/C++" im Titel würde ich doch große Zweifel haben.
-
manni66 schrieb:
HansKlaus schrieb:
ich würde dir c/c++ von ulrich kaiser empfehlen,
An einem Buch mit "C/C++" im Titel würde ich doch große Zweifel haben.
der titel soll vermutlich aussagen, dass in dem buch sowohl c als auch c++ behandelt wird. jedenfalls denke ich, dass es zumindest für den einstieg sehr gut geeignet ist.
dass theoretische informatiker mit schwerpunkt weiterentwicklung von c oder c++ oder leute, die etwas aus dem compiler "herauskitzeln" wollen, ihre freude daran haben werden, bezweifle ich allerdings auch.
ist halt mehr was für die praxis und zum "losprogrammieren", weil da die wichtigsten anwendungsfälle der programmierung behandelt werden, für alles andere gibts dann bestimmt wirklich bessere bücher.
-
HansKlaus schrieb:
der titel soll vermutlich aussagen, dass in dem buch sowohl c als auch c++ behandelt wird. jedenfalls denke ich, dass es zumindest für den einstieg sehr gut geeignet ist.
Ja, es ist so ein typisches "erst C, dann C++" Buch und daher gerade als Einstieg völlig ungeeignet.
-
naja man lernt damit halt das programmieren.
andere bücher erklären alles ganz toll und bieten dann keine möglichkeit, das gelernte durch übungen zu verfestigen. vielleicht auch nicht unbedingt besser.
-
Was man nicht gelernt hat, kann man auch nicht in Übungen verfestigen.
-
das stimmt.
aber eine frei programmierbare enigma, die ihre einstellungen auf der platte speichert und wieder abruft (wahllos herausgegriffene übungsaufgabe aus dem buch) ist etwas für das man nicht unbedingt die neuen elemente aus c++ 14 gegenüber bspw. c++ 06 braucht, die grundsätzlichen methoden der programmierung sollte man dafür aber schon beherrschen, und die bekommt man in dem buch dann doch beigebracht.
-
1. Wenn man jetzt anfängt zu lernen sollte es auch aktuelles C++ sein
2. es sollte C++ und nicht C sein
-
das ist eine übungsaufgabe aus dem c++-teil, genau genommen aus dem teil, in dem eine einführung in klassen stattfindet. mit vererbung ging es also noch gar nicht los.
aber das buch war ja auch nur meine empfehlung.

edit: mein prof hat uns zu anfang des semesters erzählt, dass wir c++ 06 lernen würden (c++ 11 ist ein wahlmodul für besonders interessierte), weil in den meisten unternehmen aus kostengründen weiterhin mit 06 programmiert wird und das auch erst einmal eine weile so bleiben wird, und der umstieg auf 11 oder 14 dann nicht sooo wild ist.

-
HansKlaus schrieb:
edit: mein prof hat uns zu anfang des semesters erzählt, dass wir c++ 06 lernen würden
Interessant. Was soll dieses "c++ 06" denn genau sein? Das habe ich noch nie gehört. Zwischen C++03 und C++11 gab es jedenfalls keinen weiteren Standard.
Auch halte ich es für sehr fragwürdig, C++11 als "Erweiterung" (nach C++98 oder was auch immer dein Prof. lehren will) zu behandeln. Wozu komplitierte Dinge lernen, wenn das gleich in C++11 alles viel einfacher geht? Es ist 2016 und es gibt auch C++14. Einen Standard vor C++11 zu lehren, ergibt keinen Sinn.
Aus Kostengründen bei diesem ominösen C++06 bleiben? Man entwickelt mit C++11 so viel schneller als mit C++98 (allein schon die Lambdas sind absolut unverzichbar), dass man dieses Argument nicht zählen lassen sollte.
-
vielleicht wars auch 03, ich muss zugeben, mich nicht besonders mit den versionen beschäftigt zu haben.
wie auch immer: was machst du denn mit den ganzen leuten, die das einfach nicht können, aber zig jahre programmiererfahrung haben? mit "ich hab mir das am wochenende mal angeguckt" kommst du in unserem tollen land ja nun auch nicht unbedingt weiter, weil hier ja fast schon ein zertifikat für den korrekten klogang verlangt wird, und rausschmeißen und durch neue leute ersetzen ist ja auch immer so eine sache.
jedenfalls hat die örtliche industrie zumindest an meiner hochschule ein nicht unbedeutendes mitspracherecht (genau genommen wird die hochschule aufgrund fehlender studiengebühren durch die industrie finanziert), warum sollte er sich das ausdenken?
wir haben wirklich keine lambdas in der vorlesung (dieses sommersemester) gehabt und der erste gedanke beim nachschlagen auf wikipedia war: kann man so machen, kann man auch nachlassen und die guten alten funktionszeiger verwenden.

-
Dein Professor ist ein fauler Sack, der die Vorlesung, die er vor 20 Jahren ausgearbeitet hat, nicht anpassen möchte. Das ist alles.
-
also ich kann dir nur empfehlen dich mit dem neusten standard zubeschäftigen oder zumindest c++11 ...
ein gutes buch dazu ist auch:
Der C++-Programmierer: C++ lernen – professionell anwenden – Lösungen nutzen
von Ulrich Breymanndas behandelt nur c++ mit dem c++11 standard.

HansKlaus schrieb:
vielleicht wars auch 03, ich muss zugeben, mich nicht besonders mit den versionen beschäftigt zu haben.

vielleicht solltest du das erstmal tun...HansKlaus schrieb:
wie auch immer: was machst du denn mit den ganzen leuten, die das einfach nicht können, aber zig jahre programmiererfahrung haben? mit "ich hab mir das am wochenende mal angeguckt" kommst du in unserem tollen land ja nun auch nicht unbedingt weiter, weil hier ja fast schon ein zertifikat für den korrekten klogang verlangt wird, und rausschmeißen und durch neue leute ersetzen ist ja auch immer so eine sache.
die "leute" die viele jahre programmiererfahrung haben, zumindest die, die ich kenne, beschäftigen sich soweit ich weiß zumindest mit dem teil der für die entwicklung/ihr fachgebiet wichtig ist.
sofern das projekt-technisch passt wird auch meines wissens nach in der wirtschaft der neuste standard bevorzugt da er einfach fehlerunanfälliger, einfacher und damit wartbarer ist.
dies ist am ende einfach wirtschaftlicher... (zumindest machen wir es so)außerdem heißt es ja nicht umsonst standard ...

"Ein Standard ist eine vergleichsweise einheitliche oder vereinheitlichte, weithin anerkannte und meist angewandte (oder zumindest angestrebte) Art und Weise, etwas herzustellen oder durchzuführen, die sich gegenüber anderen Arten und Weisen durchgesetzt hat."
https://de.wikipedia.org/wiki/Standardwenn sich dein prof oder sogar die örtliche Industrie dem verweigert(was ich mir nicht wirklich vorstellen kann) dann programmiert ihr am standard vorbei was sehr schade und ggf. unwirtschaftlich ist...
außerdem warum auf eine jetzt schon "alte" technik/standard setzen bzw überhaupt lernen?

HansKlaus schrieb:
jedenfalls hat die örtliche industrie zumindest an meiner hochschule ein nicht unbedeutendes mitspracherecht (genau genommen wird die hochschule aufgrund fehlender studiengebühren durch die industrie finanziert), warum sollte er sich das ausdenken?
sehr interessant, welche uni besuchst du?
gibt es dort viel "örtliche Industrie"?alle unternehmen die ich kenne nutzen den neusten standard den die projektentwicklung zulässt.
ich kenne auch kein unternehmen dem es egal, ist ob der code schon zur entwicklung veraltet ist...

meiner erfahrung nach weißt du wenn du ein gutes c++11 buch durchgearbeitet hast, warum du die neuen standards nutzen solltest ...
lg
-
HelPeRss schrieb:
vielleicht solltest du das erstmal tun...
die frage ist, ob ich überhaupt wirklich c++ brauche. ich habe eher die vermutung, dass ich mehr mit c und assembler zu tun haben werde.
die "leute" die viele jahre programmiererfahrung haben, zumindest die, die ich kenne, beschäftigen sich soweit ich weiß zumindest mit dem teil der für die entwicklung/ihr fachgebiet wichtig ist.
naja ist das denn wichtig? mir fiel jetzt pauschal kein grund ein, sich mit typinferenzen und anonymen funktionen zu beschäftigen. irgendwie scheint sich die programmierung dadurch eher zu verkomplizieren.
sehr interessant, welche uni besuchst du?
gibt es dort viel "örtliche Industrie"?fachhochschule kiel. die hat eigentlich einen recht guten ruf.
hier gibt es werften, druckereien, einen waffenhersteller, die bundesmarine, eine leiterplattenfabrik, einen hafen und auch noch andere betriebe, die "scharf" auf it sind.ich kenne auch kein unternehmen dem es egal, ist ob der code schon zur entwicklung veraltet ist...

was heißt veraltet? es gibt auch noch andere anforderungen wie stabilität.
die programmfehler im ms compiler oder im gcc, die aufgetreten sind, seit man sie um c++ 06 erweitert hat, sind doch weitestgehend behoben.
nur weil es neu ist, heißt es doch nicht, dass es besser ist. meistens ist erstmal das gegenteil der fall.
-
HansKlaus schrieb:
HelPeRss schrieb:
vielleicht solltest du das erstmal tun...
die frage ist, ob ich überhaupt wirklich c++ brauche. ich habe eher die vermutung, dass ich mehr mit c und assembler zu tun haben werde.
das solltest du nat. wissen.
ist mir eig auch egal.
HansKlaus schrieb:
die "leute" die viele jahre programmiererfahrung haben, zumindest die, die ich kenne, beschäftigen sich soweit ich weiß zumindest mit dem teil der für die entwicklung/ihr fachgebiet wichtig ist.
naja ist das denn wichtig? mir fiel jetzt pauschal kein grund ein, sich mit typinferenzen und anonymen funktionen zu beschäftigen. irgendwie scheint sich die programmierung dadurch eher zu verkomplizieren.
sofern dir dafür kein grund einfällt brauchst es vll noch nicht oder weißt nicht wofür man es gebrauchen kann...

wenn du es nicht nutzen möchtest tust du es eben nicht.
dynamische container(vector,map) - automatiserte speicherverwaltung, automatisierte typisierung und noch vieles mehr
lohnt sich aufjedenfall ...
wie programmierst du denn c++ - mit rohen arrays und zeigern?es gibt auch noch weiteres aber beließ dich selbst oder wenn du es nicht brauchst oder nicht möchtest auch ok
.HansKlaus schrieb:
sehr interessant, welche uni besuchst du?
gibt es dort viel "örtliche Industrie"?fachhochschule kiel. die hat eigentlich einen recht guten ruf.
hier gibt es werften, druckereien, einen waffenhersteller, die bundesmarine, eine leiterplattenfabrik, einen hafen und auch noch andere betriebe, die "scharf" auf it sind.ich kenne auch kein unternehmen dem es egal, ist ob der code schon zur entwicklung veraltet ist...

was heißt veraltet? es gibt auch noch andere anforderungen wie stabilität.
die programmfehler im ms compiler oder im gcc, die aufgetreten sind, seit man sie um c++ 06 erweitert hat, sind doch weitestgehend behoben.
nur weil es neu ist, heißt es doch nicht, dass es besser ist. meistens ist erstmal das gegenteil der fall.ok klingt gut, ein bekannter war auch in kiel und fands gut.

aber das diese sich nicht für neue techniken und aktuelle standards interessieren und dies einhalten kann ich mir nicht vorstellen...

aber wenns so ist und du den neuen standard nicht brauchst oder gar kein c++ auch ok
.ich meinte eig linux, windows ...

ja ok, industrie geräte musst halt immer schauen was unterstützt wird.aber ein c++ standard ist erstmal stabil!
was soll an c++11 und c++14 nicht stabil sein ?
(abgesehen von den gekennzeichnetet funktionen aber die sind ja wie schon besagt gekennzeicht - d.h. kannst du ja einfach nicht nutzen ... )es gibt soweit ich weiß nicht mal ein c++06 (wie auch schonmal von jmd. anderem erwähnt, glaube ich)
..."neu ist nicht immer besser"
ist schon richtig, aber c++14 ist von vor zwei jahren und ein neuer standard, der ist da um ihn zu benutzen ...wenn du c++11 und c++14 nicht nutzen willst lässt es halt aber es minimiert fehler durch automatiserte speicherverwaltung und viele weitere sachen und ist wesentlich übersichtlicher (auch mit einfachen dingen...) meiner meinung nach z.B. mit "range-for" schleifen.
wenn du das nicht machst ist das deine sache, aber die definition von standard kennst du ja bereits, schon alleine diese sagt alles dazu .
naja mir ist das sowie so schnuppe, ich nutze den neuen standard wenn das geht (auf manchen geräten oder in projekten geht das eh nicht...).
lg
-
HelPeRss schrieb:
dynamische container(vector,map) - automatiserte speicherverwaltung, automatisierte typisierung und noch vieles mehr
lohnt sich aufjedenfall ...
wie programmierst du denn c++ - mit rohen arrays und zeigern?es gibt auch noch weiteres aber beließ dich selbst oder wenn du es nicht brauchst oder nicht möchtest auch ok
.ja aber bei debian linux hast du (im stable) z.b. unglaublich alte, aber dafür weitgehend fehlerfreie software.
was debian als testing bezeichnet, bezeichnet ubuntu als stable. welches dieser betriebssysteme würdest du denn im atomkraftwerk einsetzen?aber das diese sich nicht für neue techniken und aktuelle standards interessieren und dies einhalten kann ich mir nicht vorstellen...

aber wenns so ist und du den neuen standard nicht brauchst oder gar kein c++ auch ok
.naja und ich kann mir irgendwie nicht vorstellen, dass der prof einfach zu faul ist, sein skript anzupassen, und die geldgeber den ganzen tag auf dem golfplatz verbringen, anstatt zu kontrollieren, wie der nachwuchs ausgebildet wird.
aber ein c++ standard ist erstmal stabil!
was soll an c++11 und c++14 nicht stabil sein ?
(abgesehen von den gekennzeichnetet funktionen aber die sind ja wie schon besagt gekennzeicht - d.h. kannst du ja einfach nicht nutzen ... )ja als microsoft seine xbox 360 auf den markt gebracht hat, dachte man auch, dass alles läuft und plötzlich gab es 100000 rückläufer, weil die verbindungen alle brüchig waren. das hat einen haufen geld gekostet und zusätzlich haben sich viele leute dann einfach eine ps3 gekauft, was dann auch noch bedeutet, dass microsoft keine lizenzgelder für die spiele kassieren konnte.
natürlich läuft der standard erst einmal stabil, die fehler treten ja auch immer erst auf, wenn man das produkt ausliefert und der kunde irgendein verhalten zeigt, das man sich mit den schlimmsten drogen nicht hätte ausmalen können.
es gibt soweit ich weiß nicht mal ein c++06 (wie auch schonmal von jmd. anderem erwähnt, glaube ich)
...vielleicht hat der prof auch 03 gesagt. tatsache ist jedenfalls, dass wir aus den genannten gründen kein c++ 11 gelernt haben.
c++ 11 ist wirklich nur ein wahlmodul im 5. semester (programming in c++11)
https://module.fh-kiel.de/Iue/Studiengang?StudiengangID=47&FachrichtungID=1ist schon richtig, aber c++14 ist von vor zwei jahren und ein neuer standard, der ist da um ihn zu benutzen ...
ja bei einem computerspiel oder einer bürosoftware sind fehler im compiler auch nicht so schlimm. wenn dir ein flugzeug abstürzt, weil der compiler die typinferenz falsch aufgelöst hat, ist das schon ziemlich ärgerlich.
muss ja nicht passieren, aber es kann, und dadurch dass man c++14 bei weniger sicherheitsrelevanten dingen quasi ausprobiert und erst einmal die "kinderkrankheiten" beseitigt, kann man es ja später auch super für andere dinge verwenden.
genau deshalb sagte der prof vermutlich auch, dass es noch jahre dauern wird, bis man c++ 11 (bei 14 sind wir ja noch gar nicht) richtig flächendeckend anwenden wird.wenn du c++11 und c++14 nicht nutzen willst lässt es halt aber es minimiert fehler durch automatiserte speicherverwaltung und viele weitere sachen und ist wesentlich übersichtlicher (auch mit einfachen dingen...) meiner meinung nach z.B. mit "range-for" schleifen.
wenn du das nicht machst ist das deine sache, aber die definition von standard kennst du ja bereits, schon alleine diese sagt alles dazu .
naja mir ist das sowie so schnuppe, ich nutze den neuen standard wenn das geht (auf manchen geräten oder in projekten geht das eh nicht...).
lg
mit wollen hat das nix zu tun. wenn ich mich den ganzen tag im keller verkrieche und mich nur von pizza und cola ernähre, juckt das niemanden, ob ich mit meinem selbst geschriebenen c++ 17 compiler "bisschen was zusammen programmiere", aber sobald da irgendwelche betriebswirte das sagen haben, läuft das denke ich mal doch etwas anders.

-
HansKlaus schrieb:
HelPeRss schrieb:
dynamische container(vector,map) - automatiserte speicherverwaltung, automatisierte typisierung und noch vieles mehr
lohnt sich aufjedenfall ...
wie programmierst du denn c++ - mit rohen arrays und zeigern?es gibt auch noch weiteres aber beließ dich selbst oder wenn du es nicht brauchst oder nicht möchtest auch ok
.ja aber bei debian linux hast du (im stable) z.b. unglaublich alte, aber dafür weitgehend fehlerfreie software.
was debian als testing bezeichnet, bezeichnet ubuntu als stable. welches dieser betriebssysteme würdest du denn im atomkraftwerk einsetzen?gar keins von beiden, solltest dich mal informieren was dort läuft

ich nutze selber debian, auch zur c++ entwicklung und c++11 und ich glaube auch c++14 sind voll umgesetzt ...
HansKlaus schrieb:
aber ein c++ standard ist erstmal stabil!
was soll an c++11 und c++14 nicht stabil sein ?
(abgesehen von den gekennzeichnetet funktionen aber die sind ja wie schon besagt gekennzeicht - d.h. kannst du ja einfach nicht nutzen ... )ja als microsoft seine xbox 360 auf den markt gebracht hat, dachte man auch, dass alles läuft und plötzlich gab es 100000 rückläufer, weil die verbindungen alle brüchig waren. das hat einen haufen geld gekostet und zusätzlich haben sich viele leute dann einfach eine ps3 gekauft, was dann auch noch bedeutet, dass microsoft keine lizenzgelder für die spiele kassieren konnte.
natürlich läuft der standard erst einmal stabil, die fehler treten ja auch immer erst auf, wenn man das produkt ausliefert und der kunde irgendein verhalten zeigt, das man sich mit den schlimmsten drogen nicht hätte ausmalen können.
normalerweise gibt es deshalb produktests? (wo meiner meinung nach eine defekte wlan verbindung auffallen sollte...)
ist es anscheinend nicht also kein wunder warum die kunden sich lieber ne ps3 kaufen bzw auf ein alternatives produkt umschwenken...da hast du dir ja ein hervorragendes beispiel rausgesucht

HansKlaus schrieb:
wenn du c++11 und c++14 nicht nutzen willst lässt es halt aber es minimiert fehler durch automatiserte speicherverwaltung und viele weitere sachen und ist wesentlich übersichtlicher (auch mit einfachen dingen...) meiner meinung nach z.B. mit "range-for" schleifen.
wenn du das nicht machst ist das deine sache, aber die definition von standard kennst du ja bereits, schon alleine diese sagt alles dazu .
naja mir ist das sowie so schnuppe, ich nutze den neuen standard wenn das geht (auf manchen geräten oder in projekten geht das eh nicht...).
lg
mit wollen hat das nix zu tun. wenn ich mich den ganzen tag im keller verkrieche und mich nur von pizza und cola ernähre, juckt das niemanden, ob ich mit meinem selbst geschriebenen c++ 17 compiler "bisschen was zusammen programmiere", aber sobald da irgendwelche betriebswirte das sagen haben, läuft das denke ich mal doch etwas anders.

ich bin unternehmer und weiß wovon ich rede, meist kostet ein umstieg später mehr als es gleich auf dem neusten stand zu machen...
(also letztlich interessiert ein unternehmen nur die wirtschaftlichkeit --> wie viel gewinn am ende rauskommt ... siehst du ja auch an deinem beispiel microsoft haut die xbox auch mit fehlern raus hauptsache geld verdienen...)sicherlich ist das bei heiklen sachen wie raketen, flugzeugen etc zu riskant aber ich habe ja wie OBEN SCHON GESCHRIEBEN VON LINUX UND WINDOWS gesprochen...
wo es einen sehr großen sinn macht und meiner erfahrung nach gerade bei anfängern und studienabgängern viele fehler vermeidet und zum sauberen programmieren anleitet ... aber das ist auch nur meine erfahrung ...
also verstehe ich nicht wieso du das schon wieder ansprichst es ging konkret um windows und linux (auch eindeutig geschrieben)... i.wie sinnlos (schon das zweite mal...) weil du dort eh sehen musst was die benutzen (meistens sowie so kein c++ ...)
genau, neue standards und funktionierende programme die man wiederverwenden und weiterentwickeln kann.du wirst es ja sehen ... oder auch nicht... viel erfolg aufjedenfall...
lg
-
HelPeRss schrieb:
gar keins von beiden, solltest dich mal informieren was dort läuft

ich nutze selber debian, auch zur c++ entwicklung und c++11 und ich glaube auch c++14 sind voll umgesetzt ...
ich wollte damit auch nur veranschaulichen, dass man manchmal auf ältere systeme zurück greifen sollte, weil diese einfach sauberer funktionieren.
normalerweise gibt es deshalb produktests? (wo meiner meinung nach eine defekte wlan verbindung auffallen sollte...)
ist es anscheinend nicht also kein wunder warum die kunden sich lieber ne ps3 kaufen bzw auf ein alternatives produkt umschwenken...da hast du dir ja ein hervorragendes beispiel rausgesucht

bei der xbox 360 war nicht die wlan-verbindung defekt. man hat aufgrund von vorschriften bleifreies lötzinn eingesetzt und da sich einerseits unterschiedliche metalle bei erwärmung unterschiedlich ausdehnen und andererseits bleifreies lötzinn sowieso schon eine merkwürdige sache ist (fließt schlechter, bildet komische strukturen, ist aber eben ohne blei), waren dann die lötverbindungen irgendwann hinüber und der berühmte ring of death trat auf.
sicherlich ist das bei heiklen sachen wie raketen, flugzeugen etc zu riskant aber ich habe ja wie OBEN SCHON GESCHRIEBEN VON LINUX UND WINDOWS gesprochen...
ja und ich rede hier die ganze zeit von "industrie" bzw. "produzierendem gewerbe". auf einem schiff hast du auch baugruppen wie "antrieb", "beleuchtung" usw, die du wunderbar kapseln kannst, aber wenn man nicht so weit "nach unten" muss, kann man auch wunderbar java verwenden.
viel erfolg aufjedenfall...
danke, hoffentlich erreichen wir alle unsere ziele!
-
HansKlaus schrieb:
HelPeRss schrieb:
gar keins von beiden, solltest dich mal informieren was dort läuft

ich nutze selber debian, auch zur c++ entwicklung und c++11 und ich glaube auch c++14 sind voll umgesetzt ...
ich wollte damit auch nur veranschaulichen, dass man manchmal auf ältere systeme zurück greifen sollte, weil diese einfach sauberer funktionieren.
wenn man weiß, dass ältere systeme gewisse fehlerquellen beinhalten und diese in den neueren versionen ausgemerzt worden sind, dann sollte man doch umsteigen, oder?
C++03 ist IMO mehr wie debian-testing, C++14 *ist* debian-stable - und ein paar kleinigkeiten machen C++17 dann zu superstable.jedenfalls ist es auch einfacher, C++ in version 14 "richtig" zu lernen - und dann, wenn die (lokale) industrie auf ältere versionen setzt (oder aus anderen gründen), die ältere version nachzulernen.
ich vermute allerdings eher, dass C++ gar nicht so wichtig ist (bei euch), zum einstieg in das programmieren kann man auch (ob zu recht oder nicht, das kann ich als C++-liebhaber nicht beurteilen) auf andere sprachen setzen.
Kate Gregory: Stop Teaching C (instead of C++) - die muss es wohl wissen, die geht nämlich von Firma zu Firma und lehrt so C++ (14).