Gibt es einen Unterschied zwischen Struktur und Vereinigung, wenn wir nur ein Mitglied haben?

Lesezeit: 2 Minuten

Benutzeravatar von RAFI KC
RAFI KC

Ich würde gerne den Unterschied zwischen Struktur und Vereinigung für einen Mitgliedsdatentyp wissen, falls es einen gibt.

  • Sie können das selbst durch eine einfache Suche bei Google nachlesen.

    Benutzer3522371

    26. Oktober 2014 um 11:27 Uhr


  • @Begueradj: Vielleicht, aber der Punkt ist etwas subtil, und ich bin vielleicht nicht geneigt, dem ersten zu vertrauen, was Google mir entgegenwirft.

    – Kerrek SB

    26. Oktober 2014 um 11:34 Uhr

  • Zu POD und Aggregaten mit zusätzlicher Diskussion der Änderungen für C++11 siehe Was sind Aggregate und PODs und was sind ihre Besonderheiten

    – Richard Kammern

    26. Oktober 2014 um 12:45 Uhr


  • Anstatt zu schließen, vielleicht zu Programmierern wechseln?

    – Wbeere

    26. Oktober 2014 um 19:50 Uhr

Benutzeravatar von Kerrek SB
Kerrek SB

In C: Keine. Der berühmte „Platzspar-Witz“ #define struct union ist fast kein Scherz.

In C++98: Unions können nur POD-Mitglieder haben, Nicht-Union-Klassen können beliebige Mitglieder haben.

In C++11: Unions können beliebige Datenmember des Objekttyps (aber nicht des Referenztyps) haben, aber ihre Verwendung ist eingeschränkter als die von Non-Union-Klassen. (Nämlich: Eine Union kann keine virtuellen Elementfunktionen haben, kann keine Basisklasse sein und kann keine Basisklassen haben.) Außerdem müssen Sie mehr Code schreiben, damit eine Union mit einem Mitglied funktioniert, im Gegensatz zu einer Nicht-Union-Klasse mit einem Mitglied , da Sie Konstruktoren und den Destruktor selbst schreiben müssen.

  • Darf eine Implementierung keine Auffüllung in einer Struktur haben, aber nicht in einer Union?

    – Mafso

    26. Oktober 2014 um 12:03 Uhr

  • @mafso: Ich glaube nicht. Die einzige Einschränkung, die ich sehe, ist diese: “Die Größe einer Union reicht aus, um die größten ihrer nicht statischen Datenelemente aufzunehmen.”

    – Kerrek SB

    26. Oktober 2014 um 12:11 Uhr

  • Keine Polsterung erlaubt Vor das erste Mitglied einer Struktur, und am Ende kann sowohl für die Vereinigung als auch für die Struktur eine Auffüllung vorhanden sein. Es gibt also keinen Unterschied zwischen Single Member Union und struct.

    – PP

    26. Oktober 2014 um 12:14 Uhr


  • Vielleicht einen kurzen einzeiligen Hinweis auf Lesbarkeit und Wartbarkeit wert (dh bricht nicht ab, wenn Sie Mitglied Nr. 2 hinzufügen).

    – Djechlin

    26. Oktober 2014 um 15:22 Uhr

1388810cookie-checkGibt es einen Unterschied zwischen Struktur und Vereinigung, wenn wir nur ein Mitglied haben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy