質問

その作業を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でこの種の構造をデバッグするためのより良い解決策があるかどうか疑問に思っていましたが、一般的な解決策の方が良いでしょう

ありがとう

役に立ちましたか?

解決

AutosウィンドウまたはWatchウィンドウのいずれかでツリーを展開し続けるだけです:

代替テキストhttp://www.freeimagehosting.net/uploads/626b4a37ee.png

他のヒント

ウォッチウィンドウで変数をDerived *にキャストしようとしましたか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top