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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно программу на Паскале переделать в программу на С++ http://www.cyberforum.ru/cpp/thread105498.html
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст программы на Паскале: var i, i1, i2 ,N, z: integer; q,delta,X,Y,a,b,k,Y1,X1: real; M, M1: array of real; {2 stroki - 1- X, 2 - Y } begin write('Input tha count of dots N='); readln(N);
C++ Найти все n-значные числа Армстронга для данного n<9 Натуральное n-значное число называется числом Армстронга, если оно равно сумме n-х степеней своих цифр. Найти все n-значные числа Армстронга для данного n<9, каждое такое число вывести с новой строки. Например, 153=13+53+33. Помогите друзья, горю, завтра сдавать, чет не как не идет, буду всю ночь думать. Помогите. Пишите до 6-ти утра:) Добавлено через 52 минуты На языке С. http://www.cyberforum.ru/cpp/thread105425.html
C++ Работа с файловой системой
Помогите решить задачу по Системному Программному Обеспечению пишу сдесь потому что мне кажется что это не для начинающих уже:) вобщем условие: приложение содержит проводник выбора дисков/директорий/файлов. При выборе папки, файла или диска должна появлятся информации об их размере(для диска - свободное/занятое место) заранее огромное спасибо
C++ Определить оценку, которая пойдет в зачет каждому спортсмену
Выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идёт в зачет спортсмену. Если наиболее высокую оценку выставило несколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают с наиболее...
C++ Перегрузка операторов и функций. Бинарное дерево http://www.cyberforum.ru/cpp/thread105146.html
Помогите реализовать и протестировать бинарное дерево.Класс должен иметь интерфейс АТД.(Че это такое даже незнаю)для удаления , поиска и добавления элементов, и также содержать следующие функции членов: Перегруженные конструкторы Копирование диструктор перегрузка операций добавление эл. удаление эл индексирование отношение равенства обьединение и реализация
C++ ComboBox + Button На форме имеется ComboBOx с 7 пунктами и две кнопки "Да" и "Нет" При последовательном ответе на все 7 вопросв кнопкой "Да" должно появится сообщение обезьяна съела банан,а если хотябы раз был ответ "нет" то все начинается по новой! подробнее

Показать сообщение отдельно
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
18.03.2010, 13:22  [ТС]     Откатываемый (undoable) класс
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;
}


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