Programmiersprachen C und C++
-
silent_max schrieb:
Oder sind die beiden Programmiersprachen gar ganz verschieden??
Ja
-
Ich arbeite nun seit mehr als 10 Jahren beruflich mit C++ und habe niemals C gelernt.
Aus der Sicht von C haben C und C++ eine sehr grosse Schnittmenge.
TyRoXx schrieb:
silent_max schrieb:
Oder sind die beiden Programmiersprachen gar ganz verschieden??
Ja
Und: Nein.
-
knivil schrieb:
Und: Nein.
Beispiel?
-
Cybertec schrieb:
Beispiel?
++i;
Funktioniert wunderbar in beiden Sprachen.
-
Also bitte!
Das funktioniert auch in anderen Sprachen, also ist das wohl ein blödes Beispiel.
-
Cybertec schrieb:
knivil schrieb:
Und: Nein.
Beispiel?
C ist großteils (nicht ganz) eine Untermenge von C++. Wüsste nicht was man da nun mit Beispielen großartig beweisen sollte. Der C++ Standard verweist teilweise sogar auf den C Standard...
-
Also bitte. C++ verleugnet auch mit dem neuen Standard nicht seine Wurzeln. Die meisten C Programme sind auch gueltige C++ Programme. C und C++ sind nicht ganz und gar verschieden.
-
Cybertec schrieb:
Das funktioniert auch in anderen Sprachen, also ist das wohl ein blödes Beispiel.
Nö, ist es nicht. Es zeigt eine Gemeinsamkeit beider Sprachen und beweist, dass sie nicht vollständig andersartig sind. Die Frage allerdings, ja, die ist sehr blöd.
-
knivil schrieb:
Die meisten C Programme sind auch gueltige C++ Programme.
Die meisten (vernünftigen) sind das eben nicht.
Kein C++:int *p = malloc(sizeof(int));
Aber darum geht es gar nicht. Die ursprüngliche Frage war, ob C eine geeignete Vorstufe beim Lernen von C++ ist. Und das ist es definitiv nicht.
-
Wenn Du sehr viel oder besser gesagt, zuviel Zeit hast, dann lerne
erst Assembler, dann C und dann C++.
-
redrew99 schrieb:
Wenn Du sehr viel oder besser gesagt, zuviel Zeit hast, dann lerne
erst Assembler, dann C und dann C++.Bullshit.
-
314159265358979 schrieb:
redrew99 schrieb:
Wenn Du sehr viel oder besser gesagt, zuviel Zeit hast, dann lerne
erst Assembler, dann C und dann C++.Bullshit.
Erfrischend dass du immer so fundiert argumentierst.
Ich würde auch sagen Assembler und dann gleich C++.
Weil Assembler gut ist um ein fundiertes Verständnis dafür zu bekommen wie ein Computer überhaupt funktioniert.
Und C weglassen, weil man dabei nix wichtiges lernt, was man nicht entweder bei Assembler oder C++ auch lernen würde. Und weil C zu lernen den Nachteil hat, dass man sich angewöhnt Dinge auf eine bestimmte Art und Weise zu machen, und diese Angewohnheiten dann u.U. nichtmehr ablegt.Das wäre jetzt ein Argument. Bullshit schreiben ist Bullshit. Ganz speziell wenn es von dir kommt, hihi.
-
Hmm, Assembler zu lernen, oder sich zumindest tiefgehend mit dem Aufbau und Zusammenspiel sowohl der Komponenten des Rechners als auch der des BS auseinanderzusetzen, ist eigentlich keine schlechte Idee und könnte hilfreich beim Verständnis sein.
Ich bin mir aber nicht ganz sicher, ob ich wirklich empfehlen sollte, sich zuerst in ASM einzuarbeiten (mein Werdegang war ja ganz anders, ich kam von einer imperativen Skriptsprache zu C++) …Vermutlich fällt der Lernfortschritt größer aus, wenn man erst ein paar Wochen/Monate lang C++ lernt, und sich dann mal ASM anschaut
(das kommt auch auf das Vorwissen an, das derjenige schon mitbringst, würde ich sagen – in deinem Fall ist wohl erstmal ein Schwenk auf ASM angebracht, da du ja selber sagst, dass du Probleme mit C hast, wodurch du C praktisch von selbst verstehen solltest, dann würde ich aber direkt auf C++ wechseln – wir haben Schablonen*!)
*Templates; ich wollte jetzt nur diejenigen ärgern, die sich immer aufregen, wenn ich versuche Anglizismen zu tilgen
-
Der Beitragersteller schreibt doch etwas von Dozenten.
Also scheint er eine Schule oder Uni zu besuchen.
Besteht da eine zeitliche Vorgabe Prüfungen in C oder C++ zu bestehen?
Akzeptiert der Prüfer auch Quelltext, der nicht seinem speziellen Stil entspricht?Das ein Hinweis zur Praxis.
Und nun zur Theorie
Es gibt verschiedene Wege C++ zu lernen. Und es gibt extremistische Verfechter von bestimmten WegenPraktisch kürze ich das mal ab. Wenn als Ergebnis brauchbarer C++ Code heraus kommt, war der Weg richtig. Wenn nicht, ist was falsch gelaufen.
Wo war noch mal das Problem?
Ach so. Das C++ Normenkomitee hat eigentlich vor beim nächsten Standard C++ gründlich zu reformieren. Schauen wir mal was da kommt und wer sich durchsetzt oder auch nicht.
An der Schule sollt ihr primär lernen wie man lernt, was ihr lernt ist nicht so wichtig. Das wieder zur Theorie. In der Praxis wird dann erst dann doch das was gewichtet. Das wie man lernt stellt sich für die Beteiligten meist später heraus.
Dann lernt mal ASM, C, C++, C#, Java oder was auch immer
-
f.-th. schrieb:
Ach so. Das C++ Normenkomitee hat eigentlich vor beim nächsten Standard C++ gründlich zu reformieren. Schauen wir mal was da kommt und wer sich durchsetzt oder auch nicht.
Echt? Hast du dazu eine Quelle? Zeit wär's ja mal. Wenn die mir beim nächsten mal wieder keine Module und Concepts geben schreib ich die Sprache ab. (Oder auch nicht, mangels Alternativen..
)
-
Man muss sowieso C können, um C++ können zu können.
C ist sehr einfach, eine Art Highlevel-Assembler.
-
Ethon schrieb:
Man muss sowieso C können, um C++ können zu können.
Merkwürdig, das ich schon über 10 Jahre ohne C und Assembler auskomme (letzteres habe ich in Ansätzen gelernt).
-
Nur weil du C nicht explizit gelernt hast, bedeutet das nicht, dass du nicht 97% der Sprache kannst. Und darauf würde ich durchaus wetten.
-
cooky451 schrieb:
Nur weil du C nicht explizit gelernt hast, bedeutet das nicht, dass du nicht 97% der Sprache kannst. Und darauf würde ich durchaus wetten.
Ich kenne von C weit weniger als die von dir angegebenen Prozente, nämlich weitgehend nur die Teile, die sich direkt überlappen (viele grundlegende Datentypen, Schleifen und Abfragen z.B.). Ich kenne die C-Header fast ausschließlich in den Teilen bei denen kein C++ Ersatz existiert (Was nur ein geringer Prozentsatz ist). Und vor allem: Ich habe nie den C-Stil verinnerlicht.
Und die oben genannten Teile stehen in jeden C++ Einstiegsbuch, da muß man sich nicht erst in C für einarbeiten.
Nur weil es eine Überschneidung gibt, heißt es nicht das man die andere Sprache lernen muß. Wenn man wirklich C lernt, muß man anschließend sogar an vielen Stellen umlernen, wie das Forum bei vielen Schülern nur zu gut beweist.
Mit euren Argumenten müsste man um z.B. Java oder C# zu lernen eigenlich Maschinencode, dann Assembler, C und C++ lernen.
-
asc schrieb:
Ethon schrieb:
Man muss sowieso C können, um C++ können zu können.
Merkwürdig, das ich schon über 10 Jahre ohne C und Assembler auskomme (letzteres habe ich in Ansätzen gelernt).
Wenn du das C Subset nicht beherrschst, dann wird du wohl kaum C++ können, da es gut die Häfte der Sprache ist, unter dem objektorientierten Überbau.
(C können != die C-Standardbibliothek kennen)Wer mit einer C-API nicht arbeiten kann, versteht wohl kaum C++ in Gänze.