我有一个包装类,它将其工作委托给一个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中调试这种构造,但一般解决方案会更好。< / p>
由于
答案 0 :(得分:4)
您是否尝试在观察窗口中将变量转换为Derived *?
答案 1 :(得分:2)
只需在Autos窗口或其中一个Watch窗口中展开树:
alt text http://www.freeimagehosting.net/uploads/626b4a37ee.png