Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Strukturen in C++ meistern: Ein umfassendes Tutorial für Programmieranfänger (Mai 2026)

Lerne, wie du mit C++-Strukturen (structs) Daten organisierst, Funktionen schreibst und Unions sowie Enums einsetzt – mit praxisnahen Beispielen aus der heutigen Tech-Welt.

C++ Strukturen Tutorial struct in C++ Beispiel C++ struct array C++ union enum struct Programmieren lernen C++ C++ Übungen für Studierende C++ Datenstrukturen C++ Referenzparameter struct C++ display function struct C++ Gehaltsabrechnung Programm C++ Spielerstatistik C++ Film Datenbank C++ für Anfänger 2026 C++ Assignment Hilfe C++ struct const reference C++ union Beispiel

Einführung: Warum Strukturen in C++ wichtig sind

Strukturen (structs) sind ein grundlegendes Konzept in C++, das dir hilft, zusammengehörige Daten zu gruppieren. Stell dir vor, du entwickelst eine App wie Letterboxd oder eine Spielerstatistik für EA Sports FC 26 – ohne Strukturen müsstest du Dutzende Variablen einzeln verwalten. Mit Strukturen packst du alles in ein einziges Objekt. In diesem Tutorial lernst du, wie du Strukturen definierst, initialisierst, an Funktionen übergibst und sogar mit Unions und Enums flexible Datenmodelle erstellst.

Grundlagen: Eine MovieData-Struktur erstellen

Beginnen wir mit einem klassischen Beispiel: einer Film-Datenbank. Du definierst eine Struktur namens movieData mit den Feldern title, director, year und runtime. So sieht die Definition aus:

struct movieData {    string title;    string director;    int year;    int runtime; // in Minuten};

Jetzt kannst du zwei Variablen anlegen – eine mit einer Initialisierungsliste, die andere Member für Member. Das ist perfekt, um die Syntax zu üben.

// InitialisierungslistemovieData film1 = {"War of the Worlds", "Byron Haskin", 1953, 88};// Member für MembermovieData film2;film2.title = "War of the Worlds";film2.director = "Stephen Spielberg";film2.year = 2005;film2.runtime = 118;

Die Display-Funktion schreiben

Deine Funktion displayMovie soll die Daten ausgeben. Wichtig: Du übergibst die Struktur als konstante Referenz (const movieData&), um Kopien zu vermeiden und die Daten zu schützen.

void displayMovie(const movieData& film) {    cout << "Title: " << film.title << endl;    cout << "Director: " << film.director << endl;    cout << "Released: " << film.year << endl;    cout << "Running Time: " << film.runtime << " minutes" << endl;}

Rufe die Funktion für beide Filme in main auf. So lernst du den Unterschied zwischen den Initialisierungsmethoden.

Fortgeschritten: Array von Strukturen – Spielerstatistiken

Stell dir vor, du verwaltest die Punkte deines Basketballteams für die Saison 2025/26. Du erstellst eine Struktur player mit name, number und points. Ein Array von 12 Spielern speichert alle Daten.

struct player {    string name;    int number;    int points;};

Eine Funktion getPlayerData fragt den Benutzer nach den Daten jedes Spielers. Du übergibst das Array als Referenz, damit die Änderungen erhalten bleiben.

void getPlayerData(player players[], int size) {    for (int i = 0; i < size; ++i) {        cout << "Player's name: ";        cin >> players[i].name;        cout << "Player's number: ";        cin >> players[i].number;        cout << "Points scored: ";        cin >> players[i].points;    }}

Nach der Eingabe zeigst du eine Tabelle an und berechnest die Gesamtpunktzahl. Der Spieler mit den meisten Punkten wird ermittelt – das ist wie in NBA 2K26, wo der Topscorer hervorgehoben wird.

void displayTable(const player players[], int size) {    int total = 0;    int maxPoints = 0;    string topPlayer;    int topNumber = 0;    cout << "NAME\tNUMBER\tPTS SCRD" << endl;    for (int i = 0; i < size; ++i) {        cout << players[i].name << "\t" << players[i].number << "\t" << players[i].points << endl;        total += players[i].points;        if (players[i].points > maxPoints) {            maxPoints = players[i].points;            topPlayer = players[i].name;            topNumber = players[i].number;        }    }    cout << "TOTAL POINTS: " << total << endl;    cout << "The player who scored the most points is: " << topPlayer << " #" << topNumber << endl;}

Flexibel mit Unions und Enums: Arbeiter-Gehaltsabrechnung

Dieses Beispiel zeigt die wahre Stärke von C++: Du erstellst eine Struktur worker, die sowohl Stundenlöhner als auch Festangestellte abbilden kann. Dazu verwendest du eine Enumeration (enum) und eine Union.

Definition der Worker-Struktur

enum WorkerType { HOURLY, SALARIED };struct hourlyData {    double hours;    double rate;};struct salariedData {    double salary;    double bonus;};struct worker {    WorkerType type;    double grossPay;    union {        hourlyData hourly;        salariedData salaried;    };};

Die Enum WorkerType speichert, um welche Art von Arbeiter es sich handelt. Die Union hourly/salaried teilt sich den Speicher – du nutzt immer nur einen Teil.

Eingabe-Funktionen

Schreibe zwei Funktionen: getHourly und getSalaried. Sie nehmen den Worker als Referenz und füllen die entsprechenden Felder.

void getHourly(worker& w) {    cout << "Enter the number of hours worked: ";    cin >> w.hourly.hours;    cout << "Enter the hourly pay rate: ";    cin >> w.hourly.rate;    w.grossPay = w.hourly.hours * w.hourly.rate;}void getSalaried(worker& w) {    cout << "Enter the salary amount: ";    cin >> w.salaried.salary;    cout << "Enter the bonus amount: ";    cin >> w.salaried.bonus;    w.grossPay = w.salaried.salary + w.salaried.bonus;}

Ausgabe-Funktion

Die Funktion printWorker nutzt die Enum, um zu entscheiden, welche Daten sie anzeigt.

void printWorker(const worker& w) {    if (w.type == HOURLY) {        cout << "Hourly Worker\nHours: " << w.hourly.hours << "\nRate: $" << w.hourly.rate << endl;    } else {        cout << "Salaried Worker\nSalary: $" << w.salaried.salary << "\nBonus: $" << w.salaried.bonus << endl;    }    cout << "Gross Pay: $" << w.grossPay << endl;}

Zusammenfassung und bewährte Praktiken

  • Strukturen gruppieren Daten logisch – nutze sie, um zusammengehörige Variablen zu bündeln.
  • Konstante Referenzen in Funktionen vermeiden Kopien und schützen die Daten.
  • Arrays von Strukturen sind ideal für Datensätze wie Spieler oder Produkte.
  • Unions und Enums ermöglichen flexible Datenmodelle, die Speicher sparen.
  • Denke an die Lesbarkeit: Verwende sprechende Namen und kommentiere komplexe Teile.

Mit diesen Techniken bist du bestens gerüstet, um eigene Projekte zu entwickeln – sei es eine Film-App, ein Sportstatistik-Tool oder ein Gehaltsrechner. Übe die Beispiele und passe sie an deine Ideen an. Viel Erfolg beim C++-Programmieren!