P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🔷

Middle C++C++-Interviewfragen

Middle · 2–4 Jahre Erfahrung

C++-Interviews testen drei Dinge: ob du das Objektmodell verstehst, ob man dir den Umgang mit Speicher zutrauen kann und ob du weißt, was die Standardbibliothek wirklich kostet. Hier sind die am häufigsten gestellten Fragen, jeweils mit einer Musterantwort. Middle: tieferes Verständnis, Optimierung und reale Arbeitssituationen.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Speicher, Pointer und RAII
OOP, virtuelle Funktionen und vtable
Move-Semantik und die Rule of Five
Templates und Metaprogrammierung
STL-Container und Komplexität
Nebenläufigkeit und Data Races

6 Fragen auf Middle-Niveau mit Antworten

1

Was ist die Rule of Five, und was generiert der Compiler für dich?

Antwort

Wenn eine Klasse einen eigenen Destruktor, Copy-Konstruktor oder eine Copy-Zuweisung braucht, braucht sie fast sicher alle fünf plus Move-Konstruktor und Move-Zuweisung – weil sie eine Ressource besitzt. Der Compiler generiert sie implizit, aber das Deklarieren eines davon unterdrückt einen Teil der anderen: Schreibst du einen Destruktor, werden die Move-Operationen nicht mehr generiert, und Kopien treten still an ihre Stelle. Die Rule of Zero ist noch besser – besitze Ressourcen über Member, die sich bereits selbst verwalten.

2

Was macht `std::move` eigentlich?

Antwort

Zur Laufzeit nichts. Es ist ein bedingungsloser Cast zu einer Rvalue-Referenz, der die Overload-Resolution so verändert, dass ein Move-Konstruktor oder eine Move-Zuweisung ausgewählt werden kann. Hat der Typ keine Move-Operationen, wird die Kopie gewählt, und der Code kopiert still weiter. Nach einem Move ist die Quelle gültig, aber unspezifiziert – du darfst ihr etwas zuweisen oder sie zerstören, aber nicht auf ihren Inhalt vertrauen.

3

Was sind Copy Elision und RVO?

Antwort

Der Compiler konstruiert das zurückgegebene Objekt direkt im Speicher des Aufrufers, statt es zu bauen und dann zu kopieren oder zu moven. Named RVO und Unnamed RVO waren lange etablierte Optimierungen, die beobachtbare Seiteneffekte entfernen durften; seit C++17 ist Elision beim Zurückgeben eines Prvalue verpflichtend. Die praktische Konsequenz: Rückgabe by Value ist nicht die Pessimierung, für die sie manche immer noch halten, und return std::move(x) macht die Sache meist schlimmer, weil es NRVO blockiert.

4

Wann werden Iteratoren ungültig?

Antwort

Das ist von Container zu Container unterschiedlich und lohnt sich, genau zu wissen. vector invalidiert bei Reallokation alles und ab dem Löschpunkt alles Nachfolgende; deque invalidiert bei Einfügen in der Mitte alle Iteratoren; list und die assoziativen Container halten Iteratoren gültig, außer dem auf das gelöschte Element. Der klassische Bug ist das Löschen innerhalb einer Schleife, weshalb erase den nächsten gültigen Iterator zurückgibt und weshalb es das Erase-Remove-Idiom gibt.

5

`std::map` vs. `std::unordered_map` – wie entscheidest du dich?

Antwort

map ist ein balancierter Baum: geordnete Iteration, O(log n)-Lookup, stabile Iteratoren, vorhersagbar. unordered_map ist eine Hashtabelle: im Schnitt O(1), im schlechtesten Fall aber O(n), keine Ordnung, Rehashing invalidiert Iteratoren, und alles hängt von der Qualität der Hashfunktion ab. Nimm map, wenn du Ordnung oder einen begrenzten Worst Case brauchst, unordered_map, wenn Lookups dominieren und die Reihenfolge egal ist.

6

Welche Exception-Safety-Garantien gibt es?

Antwort

Vier Stufen: No-throw, strong (die Operation wird entweder vollständig abgeschlossen oder der Zustand bleibt unverändert), basic (Invarianten gelten und nichts leakt, aber der Zustand kann sich geändert haben) und keine. Die starke Garantie wird meist umgesetzt, indem man auf einer Kopie arbeitet und am Ende swapt. Destruktoren dürfen nicht werfen – während des Stack-Unwindings ruft eine zweite Exception std::terminate auf, weshalb Destruktoren standardmäßig noexcept sind.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Middle C++-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — C++

Junior C++Senior C++Alle C++-Fragen

Weitere Spezialisierungen

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🐘Middle PHP-Backend🦫Middle Go-Backend🟢Middle Node.js-Backend💎Middle Ruby on Rails🟨Middle JavaScript⚛️Middle React Frontend