Domanda

Ho una classe wrapper che delega il suo lavoro a un pimpl e il pimpl è un puntatore a una baseclass / interfaccia senza dati specializzati in diversi modi.

In questo modo:

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();
    }
};

Ora funziona bene per la maggior parte del tempo, ma quando vado nel debugger non riesco a visualizzare x, y della classe Derived (perché potrebbe essere qualsiasi cosa). Normalmente questo è irrilevante, ma quando qualcosa va storto vedere lo stato di Derivato può essere importante, ma il brufolo oscura troppo lo stato (tuttavia questa è l'idea originale di un brufolo, quindi immagino di non potermi davvero lamentare).

Ora ho una funzione tostring () che stampa lo stato per scopi di debug, ma mi chiedevo se ci fosse una soluzione migliore, per eseguire il debug di questo tipo di costrutto in VisualStudio in particolare, ma una soluzione generale sarebbe migliore.

Grazie

È stato utile?

Soluzione

Continua ad espandere l'albero nella finestra Autos o in una delle finestre Watch:

alt text http://www.freeimagehosting.net/uploads/626b4a37ee.png

Altri suggerimenti

Hai provato a trasmettere la variabile in Derivato * nella finestra di controllo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top