Vor- und Nachteile von C und C++?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Die Frage ist so wie sie von dir gestellt ist, nicht sinnvoll zu beantworten.

Wenn man das Programmieren lernen will, kommt natürlich automatisch die Frage, in welcher „Programmiersprache“ soll man lernen. In jedem Fall muß man sich darüber im Klaren sein, dass man hochkomplexe Zusammenhänge lernen muß.

Geschichtlich gesehen ist C die ältere Programmiersprache, sodaß es hier mehr Programme gibt, die in C programmiert wurden wie in C++. C ist eine imperative Programmiersprache, die es auch heute noch schafft, beispielsweise ganze Betriebssysteme zu erstellen.

Weil man damals bei C gewisse Fähigkeiten vermisste, entwickelte Bjarne Stroustrup aus C eine C-Abart namens C++, womit er C um objektorientierte Fähigkeiten erweiterte. Doch wenn man sich einige der Anforderungen objektorientierter Programmierung ansieht, kann man diese Anforderungen durchaus auch mitverwenden. Die Einführung von Klassen und Wiederverwendbarkeit der Codes macht noch lange keine Objektorientierung. Schließlich kannte man auch in C die Aufteilung der Dateien in Header- und Quelldateien. Und wenn man hier Anpassungen im Quellcode vornimmt, kann man auch in C objektorientiert programmieren. Man muß nur gedanklich versuchen, die objektorientierten Gedankengänge aus C++ in C umzusetzen.

Näheres sollte man sich dazu aus den jeweiligen Fachbüchern von Stroustrup oder Kernighan und Richie anlesen.

Zum guten Ende einer Compilierung wird aus den Quelldateien beider Programmiersprachen eine ausführbare Programmdatei. Der Mikroprozessor fragt nicht, ob das Programm in C, C++, Java, Objective-C, Pascal, Modula oder sonst einer Programmiersprache erstellt wurde. Er führt nur die Assemblerbefehle aus, die vom Compiler aufgereiht wurden!

Ist wie gesagt mächtig, wird bei vielen benutzt

Leider ist es kompliziert und für c++ gibt es kein gescheites Tutorial gratis


Yamakuzure  13.05.2011, 09:03

Äh... nö.: http://lmgtfy.com/?q=Einsteigertutorial+C%2B%2B

0

Vorteile:

  1. Man  kann (grundsätzlich) alles damit machen
  2. Die Strukturen sind klar, bieten jedoch viele Freiheiten
  3. Beide sind durch Bibliotheken leicht erweiterbar, es gibt sehr viel, was man nicht selbst schreiben muss.
  4. Beide sind alt und "erwachsen", werden aber immernoch weiterentwickelt.
  5. C++ ist zudem Typsicher. (C nicht.)
  6. Quelltexte sind, wenn man ein paar Grundregeln beachtet, leicht portierbar.
  7. Viel Support durch Bücher, Foren, UseNet

Nachteile:

  1. Langsames Lernen durch den Umfang der Sprachen.
  2. Da man alles damit tun kann, kann man auch alles kaputt machen.

Vorteile:

- native Anwendungen (kein .NET Framework o.Ä. nötig)

- relativ hohe Portierbarkeit

- erste Wahl für komplexe Anwendungen (man kann fast alles machen)

- sehr hohe Geschwindigkeit bei der Ausführung, nur Assembler ist schneller

 

Nachteile:

- relativ komplizierte Syntax und nicht sehr einfach aufgebaute Bibliotheken

- reagiert recht empfindlich auf Programmierfehler

- dadurch keine "Anfängersprache"

 

MfG Angelo


gfuser9283  12.05.2011, 21:26

zu den Nachteilen:

Die Syntax ist erst mal Ansichtssache, ich finde sie zum Beispiel angenehm.

Was ist denn an den Bibliothen nicht einfach aufgebaut?

Das reagieren auf Programmierfehler ist kein Nachteil, sondern ein Vorteil, weil man so schnell auf den Fehler hingewiesen wird.

Ich habe zuerst C++ gelernt und fand es gar nicht schwer.

 

0
akex90 
Beitragsersteller
 12.05.2011, 21:06

C oder C++??

0
Noxtalo  12.05.2011, 21:07
@akex90

Beides. Es gibt kaum Unterschiede, in C++ wurden nur ein paar syntaktische Erweiterungen durchgeführt.

0
gfuser9283  12.05.2011, 21:20
@Noxtalo

Ui ui ui, C++ ist viel mehr als eine synataktische Erweitung. Durch die neuen Konzepte gibt es viel mehr Möglichkeiten Probleme schnell und effizient zu realisieren.

0
Yamakuzure  13.05.2011, 08:46
@Noxtalo

Das ist völliger Blödsinn. Entschuldigung, aber so eine massive "Mißinformation" ist fast schon skandalös! C++ bietet im Vergleich zu C noch: Typsicherheit, Überladung von Funktionen, Objektorientiertes Programmieren, Generisches Programmieren und Metaprogrammierung. Der C-Kern in C++ ist ein winzig kleiner Bruchteil. Die restlichen 98% der Sprache als "Ein paar syntaktische Erweiterungen" zu bezeichnen ist schlicht falsch.

1