Christian Seiler: Visual C++, C++, C#

Beitrag lesen

Hallo,

Ein Programm in "Plain C" genügt auch den Regeln von C++ und lässt sich jederzeit auch mit einem C++-Compiler übersetzen.

Das stimmt so pauschal nicht: Der C++-Standard verbietet implizite Casts von und zu (void *), d.h. folgende Konstruktion ist in C möglich, in C++ nicht:

int a = 5;  
int *p = &a;  
void *v = p;

In beiden Sprachen möglich (und korrekt) wäre:

int a = 5;  
int *p = &a;  
void *v = (void *)p;

Zudem definiert C++ einige neue Keywords, die C nicht kennt, d.h. folgender Stück Code wäre in C erlaubt, in C++ nicht:

char *class = "klassenname";

Man kann vielleicht sagen: C ist von C++ insofern eine Untermenge, als dass man alle C-Programme mit minimalem Aufwand so abändern kann, damit sie sich sowohl mit einem C- als auch mit einem C++-Compiler übersetzen lassen.

Viele Grüße,
Christian