我有一个包装类,它的工作委托给一个pimpl,而pimpl是一个指向基类/接口的指针,没有数据专门用几种不同的方法。如何在C++中获取抽象(?)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();
}
};
现在能正常工作的大部分时间,但进入调试器时,我无法查看X,派生类的Y(因为它可能是任何东西)。通常这是无关紧要的,但是当出现问题时,看到Derived的状态可能很重要,但pimpl过多地遮蔽了状态(但是这是pimpl的原始想法,所以我想我不能抱怨)。
现在我有一个tostring()函数可以将状态打印出来用于调试目的,但是想知道是否有更好的解决方案,特别是在VisualStudio中调试这种结构,但一般的解决方案会更好。
感谢
耶这部作品,好为止,但希望有一个人神奇的解决方案:) – 2009-03-06 05:23:28
是什么更神奇? – jmucchiello 2009-03-06 06:17:29