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

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top