Pergunta

Eu tenho uma classe wrapper que delega seu trabalho a um pimpl, eo pimpl é um ponteiro para um baseclass / Interface sem dados que são especializados em diversas maneiras diferentes.

Como esta:

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

Agora, isso funciona bem na maioria das vezes, mas quando vai para o depurador não posso ver x, y da classe derivada (porque poderia ser qualquer coisa). Normalmente, isso é irrelevante, mas quando algo dá errado ver o estado de Derivado pode ser importante, mas pimpl obscurece o estado muito (no entanto essa é a idéia original de um pimpl, então eu acho que eu realmente não posso reclamar).

Agora eu tenho uma função tostring () que imprime o estado para fins de depuração, mas queria saber se existe uma solução melhor, para depurar esse tipo de construção em VisualStudio em particular, mas uma solução geral seria melhor.

Graças

Foi útil?

Solução

Apenas continuar expandindo a árvore na janela Autos ou uma das janelas Watch:

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

Outras dicas

Você tentou lançar a variável em * Derivado na janela do relógio?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top