我有一个包装类,它将其工作委托给一个 pimpl,而 pimpl 是一个指向基类/接口的指针,它没有以几种不同方式专门化的数据。
像这样:
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();
}
};
现在这在大多数情况下都可以正常工作,但是当进入调试器时,我无法查看 Derived 类的 x,y (因为它可以是任何东西)。通常这是无关紧要的,但是当出现问题时,查看 Derived 的状态可能很重要,但是 pimpl 过于模糊了状态(但是这是 pimpl 的原始想法,所以我想我真的不能抱怨)。
现在我有一个 tostring() 函数,可以打印出状态以进行调试,但想知道是否有更好的解决方案,特别是在 VisualStudio 中调试这种结构,但一般的解决方案会更好。
谢谢