HOWTO · C++
Anonyme C++-Struktur
Dieses Tutorial demonstriert die Verwendung anonymer Strukturen in C++.
Dieses Tutorial demonstriert die Verwendung von anonymen Strukturen in C++.
Anonyme Struktur in C++
Anonyme Strukturen werden in C++ nicht unterstützt, da es auch in der Sprache C nicht unterstützt wurde, aber C++ unterstützt anonyme Unions, im Gegensatz zu C. Gemäß den ANSI C- und C++-Standards für Strukturen und Unions:
- ANSI C++ anonyme Vereinigungen: Unterstützt
- Anonyme ANSI C++-Strukturen: Nicht unterstützt
- Anonyme ANSI C-Unions: Unterstützt
- Anonyme ANSI C-Strukturen: Nicht unterstützt
C++ unterstützt keine anonymen Strukturen, weil C sie nicht unterstützt, was für die Kompatibilität erforderlich ist. In C++ werden keine anonymen Strukturen verwendet, aber es bietet einige Alternativen.
Sehen Sie sich beispielsweise den folgenden Code an.
struct DemoVector {
float v[3];
float &operator[](int x) { return v[x]; }
float &a() { return v[0]; }
float &b() { return v[1]; }
float &c() { return v[2]; }
};
Der obige Code bietet Einrichtungen für benutzerdefinierte Typen, die anonymen Strukturen ähneln. Ähnliches kann mit den Unions in C++ erreicht werden.
Siehe Code unten.
union DemoVector {
struct {
float a, b, c;
};
float v[3];
};
Die anonymen Structs sind nun in ISO C11, gcc und Apples llvm erlaubt, werden aber von ISO C++11 nicht unterstützt.