C++/CLI Rätsel: Wie sieht der Callstack aus?
Hier ist ein kleines Rätsel aus meiner C++/CLI Schulung, die ich letzte Woche gehalten habe:
Der Code wurde mit “/clr” kompiliert (das ist wichtig).
Kann mir jemand sagen, wie der genaue Callstack innerhalb der Methode “Foo” aussieht?
Und: Wie kann man indirekt nachweisen, was genau passiert?
Meine Schulungsteilnehmer dürfen natürlich nicht mitmachen, die wissen es ja schon
struct V { V() {} V(const V &v) { this->i = v.i; } int i; }; class C { public: void CallFoo() { V v; Foo(v); } virtual void Foo(V v) { // TODO: Wie sieht der Callstack aus? } }; int main() { C c; c.CallFoo(); }
Lösungen können als Kommentare gepostet werden.
Ein kleiner Hinweis noch: VS208 zeigt nicht den exakten Callstack an, aber er zeigt, dass da irgendwas noch passiert sein muss ![]()
May 12th, 2009 at 09:07
Die Lösung hab ich jetzt mal nur in Englisch gepostet. Sorry!
http://blog.kalmbach-software.de/2009/05/12/ccli-quiz-answer/