Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Откатываемый (undoable) класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ComboBox + Button http://www.cyberforum.ru/cpp/thread105058.html
На форме имеется ComboBOx с 7 пунктами и две кнопки "Да" и "Нет" При последовательном ответе на все 7 вопросв кнопкой "Да" должно появится сообщение обезьяна съела банан,а если хотябы раз был ответ...
C++ Хуки мыши Такая проблема, пытаюсь написать хук для мыши, вроде событие отлавливается, библиотека отлично подключается, но функция которая должна возвращать указатель на структуру MOUSEHOOKSTRUCT, возвращает... http://www.cyberforum.ru/cpp/thread104861.html
GUI-программирование. Какая библиотека лучше? C++
Здравствуйте! Я знаю "консольный" C++, теперь хочется освоить какую-нибудь библиотеку или технологию визуального программирования. Подскажите, кто знает, что лучше выбрать и что сейчас востребовано?...
C++ Нужен совет с Canvas
Доброго времени суток, Нужен совет, через чего сделать следующее Дано: картинка с нарисованными объектами разной формы Необходимо: при нажатии на какой либо объект его выделить на самой картинке.....
C++ Mac OS Timers http://www.cyberforum.ru/cpp/thread103781.html
Доброго времени суток. Есть ли какие-то средства(чистый С) для работы с таймерами под Мак(аналоги timer_create или SetTimer, возможно, мультимедийные таймеры)? Или все же придется писать...
C++ Ring0 Кто-нибудь задавался вопросом работы с уровнем доступа ядра. Я так понял в windows есть 3 режима обработки приложений! и Ring0 имеет самые высокие привилегии. Если кто-то имеет опыт в этой области,... подробнее

Показать сообщение отдельно
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
18.03.2010, 13:22  [ТС]
Nick Alte, что-то пока не получается реализовать. Ты не мог бы схематично расписать одну из функций класса Undoable?
В моём способе Undoable наследуется от класса T, поэтому он может работать с переменными этого класса. А как работать с классом, когда ты не знаешь, что в нём лежит?

Добавлено через 31 минуту
А, я понял, там нужно приведение типов делать. Но всё равно суть остаётся та же: откатываемый класс находится на дне иерархии. А вот можно ли как-нибудь его наверх вытащить?

Добавлено через 15 часов 21 минуту
Так-с, с паттерном, вроде, разобрался. Спасибо за наводку.
Но по-прежнему не могу создать копию объекта внутри класса Undoable.

Вот такая конструкция в классе Undoable
C++
1
2
3
void save () {
    T * newVersion = new T(*static_cast<T *>(this));
}
выдаёт ошибку:

/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.0.0/debug/safe_iterator.h:127:
error: attempt to copy-construct an iterator from a singular iterator.

Objects involved in the operation:
iterator "this" @ 0x0x1001cc {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPP7myClassN10__gnu_norm6vectorIS4_SaIS4_EEEEEN15__gnu_debug_def6vectorIS4_S8_EEEE (mutable iterator);
state = singular;
}
iterator "other" @ 0x0xbffff724 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPP7myClassN10__gnu_norm6vectorIS4_SaIS4_EEEEEN15__gnu_debug_def6vectorIS4_S8_EEEE (mutable iterator);
state = singular;
}


Как решить проблему?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru