Как получить отладочную информацию для абстрактного (?) Pimpl в C++?

StackOverflow https://stackoverflow.com/questions/617726

Вопрос

У меня есть класс-оболочка, который делегирует свою работу элементу, а элемент — это указатель на базовый класс/интерфейс без данных, который специализирован несколькими различными способами.

Так:

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 может быть важным, но прыщик слишком сильно затеняет состояние (однако это первоначальная идея прыща, так что, думаю, мне не на что жаловаться).

Теперь у меня есть функция tostring(), которая выводит состояние для целей отладки, но мне было интересно, есть ли лучшее решение, в частности, для отладки такого рода конструкции в VisualStudio, но общее решение было бы лучше.

Спасибо

Это было полезно?

Решение

Просто продолжайте расширять дерево в окне «Видимые» или в одном из окон «Наблюдение»:

альтернативный текст http://www.freeimagehosting.net/uploads/626b4a37ee.png

Другие советы

Пробовали ли вы привести переменную к Derived* в окне просмотра?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top