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

Senior C++C++-Interviewfragen

Senior · 5+ 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. Senior: Architektur, Trade-offs, Mentoring und Entscheidungsfindung.

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

5 Fragen auf Senior-Niveau mit Antworten

1

Wie beeinflussen Cache Misses die Art, wie du Daten anordnest?

Antwort

Ein Miss auf den Hauptspeicher kostet in der Größenordnung von ein paar hundert Zyklen, sodass eine theoretisch bessere Datenstruktur klar gegen ein zusammenhängendes Array verlieren kann. Das führt dazu, Daten so anzuordnen, wie sie durchlaufen werden – Structure-of-Arrays, wenn man ein Feld über viele Objekte hinweg anfasst, heiße Felder eng zusammenpacken und Pointer-Chasing in der inneren Schleife vermeiden. False Sharing ist dasselbe Problem umgekehrt: Zwei Threads schreiben in unterschiedliche Variablen derselben Cache-Line und serialisieren sich dadurch gegenseitig, die Lösung ist Padding auf Cache-Line-Größe.

2

Wann lohnt sich Lock-Free, und was unterscheidet es von Wait-Free?

Antwort

Lock-Free garantiert, dass irgendein Thread Fortschritt macht; Wait-Free garantiert, dass jeder Thread in einer begrenzten Anzahl Schritte Fortschritt macht. Lock-Free lohnt sich bei echter Contention auf einer kleinen, gut verstandenen Struktur – einer Queue, einem Counter –, wo ein Mutex messbar dominiert. Als Standardansatz lohnt es sich nicht: Der Code ist schwer korrekt zu schreiben, schwer zu testen, und ein gut genutzter Mutex ist im unkonkurrierten Fall schnell – die ehrliche Antwort beginnt also meist mit einer Messung.

3

Erkläre Memory Ordering bei `std::atomic`.

Antwort

seq_cst ist die Voreinstellung und liefert eine einzige totale Ordnung über alle Threads hinweg – korrekt und am leichtesten nachzuvollziehen. acquire/release-Paare stellen ein Happens-Before zwischen dem freigebenden Store und dem übernehmenden Load her, genau das macht ein Lock intern, und das reicht für die meisten Producer-Consumer-Muster. relaxed garantiert nur Atomarität, keine Ordnung, und passt zu Dingen wie einem Statistik-Counter. Die Ordnung abzuschwächen ist eine gemessene Optimierung, kein Ausgangspunkt.

4

Ein Projekt braucht zwanzig Minuten zum Bauen. Wie gehst du das an?

Antwort

Zuerst messen – welche Translation Units und welche Header dominieren. Dann den Header-Graphen kürzen: Forward Declarations statt Includes, PIMPL für breit eingebundene Klassen und Templates aus Headern herausziehen, wo die Instanziierungskosten wirklich ins Gewicht fallen. Danach kommen die mechanischen Gewinne – Precompiled Headers, ccache, Parallelität, Unity Builds und ein Linker wie lld oder mold. Module lösen das Problem sauber dort, wo die Toolchain dafür bereit ist.

5

Code ist langsamer, als er sein sollte. Was ist deine Methode?

Antwort

Ausgehen von einer reproduzierbaren Messung, denn die Intuition zur C++-Performance liegt oft genug falsch, um gefährlich zu sein. Profilen, um herauszufinden, wo die Zeit tatsächlich hingeht, und erst danach den Algorithmus statt Mikrooptimierungen betrachten. Prüfen, was der Optimizer tatsächlich gemacht hat, statt es anzunehmen – der generierte Code beantwortet Fragen, die das Lesen des Quellcodes nicht beantworten kann. Und die Umgebung kontrollieren: Build-Flags, aufgewärmte Caches, Frequency Scaling und Rauschen von anderen Prozessen liefern sonst Zahlen, die nicht real 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.

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

Weitere Level — C++

Junior C++Middle C++Alle C++-Fragen

Weitere Spezialisierungen

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