0Pricing
C++ Academy · Lektion

auto, decltype und Typherleitung

Lassen Sie den Compiler Typen mit auto und decltype ableiten und schreiben Sie dadurch übersichtlicheren Code.

auto, decltype und Typherleitung ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Typableitung in modernem C++

Seit C++11 kann der Compiler an vielen Stellen Typen ableiten. Dadurch wird der Code kürzer und weniger fehleranfällig – sofern Sie diese Möglichkeit sinnvoll einsetzen.

Das Schlüsselwort auto

auto leitet den Typ zur Compilezeit aus dem Initialisierer ab. Die Variable hat trotzdem einen festen, statisch bekannten Typ.

auto i = 42;          // int
auto d = 3.14;        // double
auto s = "hello";     // const char*
auto v = std::vector<int>{1,2,3};   // std::vector<int>

auto und const

Standardmäßig entfernt auto das top-level-const und Referenzen. Fügen Sie sie ausdrücklich hinzu, wenn Sie sie beibehalten möchten.

const int n = 10;
auto a = n;            // int (const dropped)
const auto& b = n;     // const int&

auto mit Iteratoren

Iterator-Typnamen sind lang. Hier spielt auto seine Stärken aus.

std::map<std::string, int> ages = {{"Ada", 30}};
auto it = ages.find("Ada");
// vs std::map<std::string,int>::iterator it = ...

Range-basierte for-Schleifen und auto

Verwenden Sie auto&, um ohne Kopieren zu iterieren.

for (const auto& [name, age] : ages) {
    std::cout << name << ": " << age << "\n";
}

Nachgestellte Rückgabetypen

Funktionen können auto als Platzhalter für den Rückgabetyp verwenden, wobei ein nachgestellter Pfeil den Typ angibt – praktisch für Templates.

auto add(int a, int b) -> int {
    return a + b;
}

Ableitung des Rückgabetyps in C++14

C++14 erlaubt einfache auto-Rückgabetypen – der Compiler leitet den Typ aus der return-Anweisung ab.

auto multiply(double x, double y) {
    return x * y;       // deduced as double
}

decltype: Den Typ eines Ausdrucks ermitteln

decltype(expr) liefert den Typ von expr zur Compilezeit. Anders als auto bewahrt es Referenzen und const.

int x = 0;
int& r = x;
decltype(r) ref = x;  // int&
decltype(x) val = 0;  // int

decltype(auto)

Verbindet Typableitung mit den Regeln von decltype und bewahrt den exakten Ausdruckstyp einschließlich der Wertkategorie.

auto         a = some_func();   // copy
decltype(auto) b = some_func();  // exact type, including references

Wann Sie auto vermeiden sollten

Vermeiden Sie auto, wenn der abgeleitete Typ nicht offensichtlich ist – etwa bei großen numerischen Literalen, gemischten Rechenausdrücken oder plattformspezifischen Größen. Geben Sie den Typ für bessere Lesbarkeit explizit an.

Stil mit fast durchgängig auto

Einige Styleguides empfehlen auto für alle Variablen, um unbemerkte Konvertierungen zu vermeiden. Andere bevorzugen explizite Typen. Legen Sie eine Konvention fest und wenden Sie sie konsequent an.

Kurzer Test

Was ist beim Zurückgeben einer Referenz der Unterschied zwischen auto und decltype(auto)?

Zusammenfassung

auto leitet Typen aus Initialisierern ab, decltype gibt den Typ eines Ausdrucks an und decltype(auto) leitet ihn ab, wobei Referenzen erhalten bleiben. Verwenden Sie diese Sprachmittel, um unnötige Ausführlichkeit zu vermeiden – achten Sie aber auf die Lesbarkeit.

Häufig gestellte Fragen

Ist die Lektion „auto, decltype und Typherleitung“ kostenlos?

Ja — der vollständige Text von „auto, decltype und Typherleitung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „auto, decltype und Typherleitung“?

Lassen Sie den Compiler Typen mit auto und decltype ableiten und schreiben Sie dadurch übersichtlicheren Code. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „auto, decltype und Typherleitung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. auto, decltype und Typherleitung
  2. Range-basierte for-Schleife, nullptr und enum class
  3. Lambda-Ausdrücke: Capture, mutable, generisch
  4. Strukturierte Bindings und if-init in C++17
← Zurück zu C++ Academy