Namensräume
Varianten
Aktionen

C++ Schlüsselwort: struct

Von cppreference.com
< cpp‎ | keyword
 
 
C++ Sprache
Allgemeine Themen
Kontrollfluss
Bedingte Ausführungsaussagen
if
Iterationsanweisungen (Schleifen)
for
Bereichs-for (C++11)
Sprunganweisungen
Funktionen
Funktionsdeklaration
Lambda-Funktionsausdruck
inline-Spezifizierer
Dynamische Ausnahmespezifikationen (bis C++17*)
noexcept-Spezifizierer (C++11)
Ausnahmen
Namensräume
Typen
Spezifizierer
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Speicherdauer-Spezifizierer
Initialisierung
Ausdrücke
Alternative Darstellungen
Literale
Boolesch - Ganzzahl - Gleitkommazahl
Zeichen - String - nullptr (C++11)
Benutzerdefinierte (C++11)
Dienstprogramme
Attribute (C++11)
Typen
typedef-Deklaration
Typalias-Deklaration (C++11)
Umwandlungen
Speicherzuweisung
Klassen
Klassenspezifische Funktionseigenschaften
explicit (C++11)
static

Spezielle Member-Funktionen
Templates
Sonstiges
 
 

[bearbeiten] Verwendung

(seit C++11)
  • Wenn eine Funktion oder eine Variable im Gültigkeitsbereich mit demselben Namen wie ein Nicht-Union-Klassentyp existiert, kann struct dem Namen vorangestellt werden, um die Mehrdeutigkeit aufzulösen, was zu einem ausführlichen Typspezifizierer führt.

[bearbeiten] Beispiel

struct Foo; // forward declaration of a struct
 
struct Bar  // definition of a struct
{
    Bar(int i) : i(i + i) {}
 
    int i;
};
 
enum struct Pub // scoped enum, since C++11
{
    b, d, p, q,
};
 
int main()
{
    Bar Bar(1);
    struct Bar Bar2(2); // elaborated type
}

[bearbeiten] Siehe auch

(seit C++11)