Anonyme C++-Struktur

Sheeraz Gul 12 Oktober 2023
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:

  1. ANSI C++ anonyme Vereinigungen: Unterstützt
  2. Anonyme ANSI C++-Strukturen: Nicht unterstützt
  3. Anonyme ANSI C-Unions: Unterstützt
  4. 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 Gul avatar Sheeraz Gul avatar

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

Verwandter Artikel - C++ Struct