문제

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

이제 이것은 대부분의 시간에 잘 작동하지만 디버거로 들어갈 때 파생 클래스의 x, y를 볼 수 없습니다 (무엇이든 할 수 있기 때문입니다). 일반적으로 이것은 관련이 없지만, 파생 상태를 보는 것이 잘못되면 중요한 일이 중요 할 수 있지만 PIMPL은 상태를 너무 많이 모호하게합니다 (그러나 이것이 PIMPL의 원래 아이디어이므로 실제로 불평 할 수는 없습니다).

이제 디버그 목적으로 상태를 인쇄하는 toString () 함수가 있지만 더 나은 솔루션이 있는지 궁금해하고 특히 VisualStudio에서 이러한 종류의 구성을 디버깅하는 것이 더 좋을 것입니다.

감사

도움이 되었습니까?

해결책

자동차 창이나 시계 창 중 하나에서 트리를 계속 확장하십시오.

Alt Text http://www.freeimagehosting.net/uploads/626b4a37ee.png

다른 팁

시계 창에서 변수를 파생*에 캐스트 해 보셨습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top