🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
2 messages
2 total messages Started by Michael.Burgard Thu, 07 Mar 1996 21:14
Umstieg von Quick C auf C++ etc.
#1780
Author: Michael.Burgard
Date: Thu, 07 Mar 1996 21:14
14 lines
908 bytes
Hallo,

kann mir jemand sagen, ob ein Umstieg von Quick C 2.00 (hab da nur
manchmal ein bischen "rumprogrammiert", kenns aber nun schon recht
gut, d.h fast so gut wie jede Funktion und auch vom Prinzip habe ich C
verstanden) auf zum Beispiel C++  leicht ist, oder man schon umlernen
muss? Sind die alten grundlegenden Funktionen wie z.B. printf(),
scanf() etc. noch da oder heissen die in C++ anders.
Welche Version von C++ ist den im Moment die aktuelle, oder welcher
C-"Dialekt" ist den zur Zeit zu empfehlen?


Danke
Michael
Re: Umstieg von Quick C auf C++ etc.
#1784
Author: Dietmar Kuehl
Date: Fri, 08 Mar 1996 16:10
83 lines
5330 bytes
Hi,
Michael.Burgard@munich.netsurf.de wrote:
: kann mir jemand sagen, ob ein Umstieg von Quick C 2.00 (hab da nur
: manchmal ein bischen "rumprogrammiert", kenns aber nun schon recht
: gut, d.h fast so gut wie jede Funktion und auch vom Prinzip habe ich C
: verstanden) auf zum Beispiel C++  leicht ist, oder man schon umlernen
: muss? Sind die alten grundlegenden Funktionen wie z.B. printf(),
: scanf() etc. noch da oder heissen die in C++ anders.

Ich weiss nicht, in wie weit sich Quick C von ISO C unterscheidet, aber
ich vermute nicht wesentlich (ich kenne Quick C nicht). Der Umstieg von
C nach C++ ist je nachdem, wie man es sieht, von problemlos bis
kompliziert:  Will man weiter eigentlich C programmieren, aber einen
C++ Compiler benutzen, dann gibt es kaum was zu beachten. Es gibt in
C++ halt einen Satz zusaetzlicher Schluesselwoerter, die es in C nicht
gab, z.B. 'class', 'public', 'typename',... Ausserdem gibt es kleinere
Aenderungen (z.B. Character-Literal haben in C den Typ 'int' und in C++
den Typ 'char'; das macht sich, wenn man keine C++ Features benutzt,
nur bei 'sizeof()' bemerkbar). Insbesondere ist die Standard C Library
(z.B. mit 'printf()' und Co.) auch Teil des (zukuenftigen) C++
Standards.

Das ist aber nicht der "Kick". Davon programmiert man NICHT C++ und
schon garnicht objekt-orientiert.  Wenn man tatsaechlich C++
programmieren will, dann hat man einen langen, steinigen Weg vor sich.
Da waere man (IMHO) besser dran, wenn man vorher NICHT gelernt haette C
zu programmieren... Auf den ersten Blick sieht C++ so aus wie C und man
kann in der Tat alle Beispiele aus dem ANSI K&R mit einem Standard
konformen C++ Compiler uebersetzen und erhaelt sogar die selben
Resultate. Aber C++ ist anderes. Es ist eine andere Sprache mit anderen
Techniken und anderen Ideen. Insbesondere ist C++ um Laengen
komplizierter als C. Dafuer gewinnt man Unterstuetzung bei
objekt-orientiertem Programmieren. Allerdings darf man nicht denken,
dass man objekt-orientiert programmiert nur weil man C++ oder in C++
eine 'class' benutzt!  Wenn man aber tatsaechlich objekt-orientiert
(oder generisch, dafuer gibt es in C++ auch Unterstuetzung, siehe etwa
STL) programmiert, dann nimmt einem C++ eine ganze Menge Arbeit ab.
Die Datenkapselung, in C++ durch Klassen ('class' oder 'struct')
modeliert, verhindert, dass man sich dazu verleiten laesst, auf
Repraesentationsdetails zuzugreifen (das ist in grossen, nicht
objekt-orientierten Projekten eine nicht-triviales Problem).
Gleichzeitig kann man Klassen so schreiben, dass man ihr Verhalten
modifizieren kann (durch dynamische Polymorphie, d.h. virtuelle
Funktionen, oder statische Polymorphie, d.h. Templates). Darueber
hinaus kann man Klassen, mittels ueberladbaren Funktionen und
Operatoren, so implementieren, dass ihre Benutzung "natuerlich" ist
(man kann die selben Features missbrauchen, um eine "unnatuerliche"
Benutzung zu erzwingen). Das alles (und nochmehr; C++ hat noch eine
Reihe von signifikanten Features, die ich nicht erwaehnt habe) macht es
moeglich, grosse Programme in den Griff zu bekommen und Teile davon
auch noch so zu schreiben, dass man sie im naechsten Programm
wiederverwenden kann.

Diese Vorteile gibt es aber halt nicht umsonst. Um sie richtig
einsetzen zu koennen, ist es noetig einen guten Einblick in die Sprache
zu haben. Bevor man fluessig C++ Programme (welche, die man wirklich
C++ Programme nennen kann) entwerfen und schreiben kann, vergeht sicher
ein halbes Jahr, wenn man vorher viel C programmiert hat mehr.

: Welche Version von C++ ist den im Moment die aktuelle, oder welcher
: C-"Dialekt" ist den zur Zeit zu empfehlen?

Der ISO C++ Standard liegt in den letzten Zuegen (derzeit ist gerade
wieder ein ISO C++ Committee Meeting; mal sehen, was sich tolles
aendert...) und man kann im Prinzip das DWP (Draft Working Paper) als
de facto Standard ansehen:  Es wird keine entscheidenen Erweiterungen
und Einschraenkungen mehr geben. Lediglich Details werden konsistent
gemacht und Widersprueche aufgeloest. Compiler dafuer gibt es
allerdings noch nicht. Alle C++ Compilerbauer laufen dem derzeit
aktuellen DWP hinterher. Stabile Implementationen der Core-Features
gibt es einige: Da hat man halt nicht "the cutting edge of features",
dafuer was, womit man portable arbeiten kann. In der Beziehung kann man
fast alles nehmen.

Was den 'C-"Dialekt"' angeht, ist ISO C zu empfehlen: Alles andere ist
(per Definition) unportable. Die meisten C Compiler duerften ISO
compatible sein, mindestens dann, wenn man den Schalter auf ISO (bzw.
"ANSI"; da muss es eine grosse Fraktion von Nationalisten geben...)
stellt.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads