Anonyme C++-Struktur
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.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook