Wie kommt man Informationen debuggen für ein abstraktes (?) Pimpl in C ++?
-
03-07-2019 - |
Frage
Ich habe eine Wrapper-Klasse, dass die Delegierten ihre Arbeit zu einem Pimpl und die Pimpl ist ein Zeiger auf eine Basisklasse / Schnittstelle ohne Daten, die auf verschiedene Arten spezialisiert.
Wie folgt aus:
class Base
{
void doStuff=0;
};
class Derived
{
int x,y;
void doStuff()
{
x = (x+y*2)*x; //whatever
}
};
class Wrapper
{
Base* _pimpl;
void doStuff()
{
_pimpl->doStuff();
}
};
Jetzt funktioniert dies die meiste Zeit in Ordnung, aber wenn sie in den Debugger gehen kann ich nicht x, y der abgeleiteten Klasse betrachten (weil es etwas sein könnte). Normalerweise ist dies irrelevant, aber wenn etwas schief geht, kann der Zustand des Sehen Abgeleitet wichtig sein, aber Pimpl verschleiert den Staat zu viel (aber das ist die ursprüngliche Idee eines Pimpl, so dass ich denke, ich kann nicht wirklich beschweren).
Jetzt habe ich eine toString () Funktion, die den Zustand aus für Debug-Zwecke druckt, aber frag mich, ob es eine bessere Lösung ist, diese Art von Konstrukt insbesondere in Visual Studio zu debuggen, aber eine allgemeine Lösung wäre besser.
Danke
Lösung
So halten den Baum im Fenster Auto oder einem der Uhren Fenster Erweiterung aus:
alt text http://www.freeimagehosting.net/uploads/626b4a37ee.png
Andere Tipps
Haben Sie versucht, die Variable in Derived * im Überwachungsfenster Gießen?