|
Da sicherlich viele nachdem sie C gelernt haben auf C++ Umsteigen werden,
ein paar Differenzen die es hinsichtlich von Strukturen mit struct, unions
und enum zu beachten sind.
Folgende Differenzen gibt es bei Verwendung von struct und union...
struct twin{
int x;
int y;
};
struct twin moretwin; /*Ok in C und C++*/
twin newtwin; /*falsch in C, Ok in C++*/
|
2 Zufällig gleiche Namen einer Struktur und einer Variablen machen in
C keine Probleme. Wohl aber in C++....
int twin=99;
int main()
{
struct twin{
int x;
int y;
};
struct twin value={ 200, 100};
printf("%f\n",twin); /*Ok in C, falsch in C++*/
.............
|
Um in C++ folgendes zu reallisieren.......
struct nested{
struct struktur1{int a, int b}name;
struct struktur1 name2;
};
struct nested value1; /*Ok in C und C++*/
struct struktur1 value2; /*Ok in C, falsch in C++*/
|
So macht man das zweite Beispiel in C++......
nested::struktur1 value; /*In C++ ok,in C falsch*/
Folgende Differenzen sind bei enum zwischen C und C++ zu beachten......
enum farben{rot,gruen,blau};
enum farben select;
farben select; /*Ok in C++, Fehler in C*/
select=rot; /*Ok in C und C++*/
select=10; /*Warnung in C, Fehler in C++*/
select++; /*Ok in C, Fehler in C++*/
|
In C++ können sie also den enum-Variablen keine Werte übergeben ohnen
diesen zu casten. Folglich würde funktionieren...
select=(enum farben)=10; /*casting, daher Ok in C++*/
..und außerdem können sie in C++ keine enum-Variale Inkrementieren.
© 2001,2002 Jürgen Wolf
|