C ++でabstract(?)pimplのデバッグ情報を取得する方法は?
-
03-07-2019 - |
質問
その作業を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 *にキャストしようとしましたか?
所属していません StackOverflow