C++ Interview Fragen
-
Hi,
welche fragen wuerdet ihr bei einem c++ interview stellen, wenn ihr der interviewer seid?
LG Werner
-
Was geschieht, wenn der Programmierer innerhalb einer Funktion ein
int i = 1gemacht wird?
-
simple schrieb:
Was geschieht, wenn der Programmierer innerhalb einer Funktion ein
int i = 1gemacht wird?
Dann benötigt der Interviewer einen Deutschkurs.
-
Ja, das ist mir im Nachhinein auch aufgefallen.
Trotzdem kann man an der Art wie diese Frage beantwortet wird schon eine Menge über den Bewerber erfahren.
-
auf was willst du hinaus? namensvergabe von variablen?
-
Nein. Allein hierdurch kann man damit Anfangen was überhaupt eine Variable ist, wie der Stack funktioniert usw. ... sprich man kann sagen, dass eine Variable i vom Typ int der Wert 1 zugewiesen wird, oder man beantwortet es ausführlich.
-
ok, klar
-
Meine Fragen:
I. Was ist der unterschied zwischen den zwei folgenden Ausdruecken, wobei Foo eine Klasse ist:1.) Foo f;
2.) Foo f();II. Welche moeglichkeiten gibt es eine Memberfunktion zu inlinen?
III. Was macht der Ausdruck friend?
-
Ich würde wahrscheinlich nicht die Fragen stellen, die in jedem Anfängerbuch vorkommen. Oder zumindest nicht nur.
Gut wären Fragen, die nicht nur Wissen, sondern auch Fähigkeiten prüfen. Z.B. wie ein konkretes Problem modelliert werden kann, oder was für Vorteile gewisse Abstraktionsmechanismen gegenüber anderen haben. Ich würde auch eine Frage zu RAII stellen, weil es eines der fundamentalsten Konzepte in C++ ist, aber sehr viele C++-Programmierer damit Mühe haben oder es gar nicht erst kennen.
Wenn du dich tatsächlich auf ein Interview vorbereitest, weiss ich allerdings nicht, wie repräsentativ Vorschläge aus diesem Forum sind.
-
@Nexus:
Anhand dieses Beispieles kann man RAII erklaeren:Problem: ######## Mutex m; class Foo { public: void bar() { mutex.lock(&m); // do stuff // <--- exception happens here mutex.unlock(&m); } }; Solution RAII: ############## class Lock { private: Mutex *mu; public: explicit Lock(Mutex *m) { mu = m; mu->lock(); } ~Lock() { mu->unlock(); } }; class Foo { public: void bar() { Lock(&m); // do stuff // <--- exception happens here...no problem since the // Lock destructor does the cleanup and calls the mu->unlock } };
-
wernerschwarz schrieb:
welche fragen wuerdet ihr bei einem c++ interview stellen, wenn ihr der interviewer seid?
Vielleicht sowas:
- Was kam in C++11 dazu?
- Schreib eine Funktion, die einen C-String umdreht.
- Warum wird für embedded systems immer nur C++ verwendet?
-
Concita_Wurst schrieb:
Meine Fragen:
I. Was ist der unterschied zwischen den zwei folgenden Ausdruecken, wobei Foo eine Klasse ist:1.) Foo f;
2.) Foo f();II. Welche moeglichkeiten gibt es eine Memberfunktion zu inlinen?
III. Was macht der Ausdruck friend?
Und damit wüsstest du, ob du dir einen fähigen Programmierer in die Forma holst?
Einfache Fragen beantworten auch Leute die nur mal eine Vorlesung darüber abgesessen haben.
Schwierige Fragen zu Sprachdetails können gerade in C++ auch sehr gute Entwickler mal aus dem Konzept bringen aber Leute wie Sone beten dir dann irgendwelche Standardparagraphen runter und haben eigentlich null Ahnung von prof. Entwicklung.Bei Fragen dieser Art kann man eigentlich auch aufstehen und gehen, weil man es dann mit Idioten zu tun hat.
-
Das ist doch alles Pillepalle.
Eine Frage reicht: "Beherrschen sie C++?"
-
ScottZhang schrieb:
Eine Frage reicht: "Beherrschen sie C++?"
Da holst Du Dir Politiker rein.
-
Argh, hatte gehofft die gerade dadurch auszusieben.
-
Ich stelle immer, aehnlich wie Volkard vorgeschlagen hat, eine einfache Programmieraufgabe. Z.B. etwas in der Art: "Wieviele Quadrate kann man auf einem Schachbrett bilden und schreiben Sie eine iterative und eine rekursive Loesung dazu auf."
Da sieht man ob die Person ein Problem analysieren, in eine Formel packen und in Code umsetzen kann.
Bei einzelnen Schritten gebe ich dann, je nach Nervositaet der Kandidaten, Hilfestellung.
Hat bisher immer mit guten Ergebnissen funktioniert, denn die Spreu trennt sich schon bei einfachen Aufgaben vom Weizen. Beim Code kann man dann immer noch nach Dingen wie der Verwendung der Standard-Bibliothek fragen (nicht gerade bei oben genanntem Problem, aber z.B. beim String-Umdrehen).
Wenn man allerdings einen Super-TMP-festen C++'er haben muss, der vom Start weg funktioniert, muss man natuerlich mehr und anders fragen.
-
@volkard: ok so?
void reverse(string &s) { int j = s.size() - 1; for(int i = 0; i < s.size() / 2; i++) { swap(s[i], s[j]); j--; } }
-
Concita_Wurst schrieb:
@volkard: ok so?
void reverse(string &s) { int j = s.size() - 1; for(int i = 0; i < s.size() / 2; i++) { swap(s[i], s[j]); j--; } }Hatte einen C-String gemeint, Zeiger auf nullterminierte char-Kette.
-
@volkard: funktioniert doch gleich vom prinzip!?
-
Concita_Wurst schrieb:
void reverse(string &s) { int j = s.size() - 1; for(int i = 0; i < s.size() / 2; i++) { swap(s[i], s[j]); j--; } }intist der falsche Typ.Das wäre für mich die richtige Lösung:
std::reverse(s, s + std::strlen(s));Wenn ich jemanden suchen würde, der C++ kann, würde ich ihn zum Beispiel die wesentlichen Teile von
std::function,shared_ptroder so programmieren lassen.
Das kann natürlich fast niemand. Ich würde also wahrscheinlich kein Personal finden..