J'ai une classe wrapper qui délègue son travail à un pimpl, et le pimpl est un pointeur vers une baseclass/interface sans données qui sont spécialisées de plusieurs manières différentes.Comment obtenir des informations de débogage pour un résumé (?) Pimpl en C++?
Comme ceci:
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();
}
};
Maintenant, cela fonctionne très bien la plupart du temps, mais en allant dans le débogueur je ne peux pas voir x, y de la classe dérivée (parce que cela pourrait être quelque chose). Normalement, cela n'est pas pertinent, mais quand quelque chose ne va pas, voir l'état de Derived peut être important, mais pimpl obscurcit trop l'état (mais c'est l'idée originale d'un pimpl, donc je ne peux pas vraiment me plaindre).
Maintenant, j'ai une fonction tostring() qui imprime l'état à des fins de débogage, mais je me demandais s'il y avait une meilleure solution, pour déboguer ce genre de construction dans VisualStudio en particulier, mais une solution générale serait mieux.
Merci
Mmm, ok votre droit, mais mon code réel est plus complexe que cela et cela ne fonctionne pas bien ... laissez-moi comprendre pourquoi cela ne fonctionne pas ... –
Si vous le faites à partir d'une unité de compilation n'a pas la visibilité de la déclaration de la classe impl puis il n'est pas visible –
on y va! C'est pourquoi ça ne fonctionne pas –