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

Создать класс, расширяющий существующий объект - C++

Восстановить пароль Регистрация
 
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,771
Записей в блоге: 1
08.12.2013, 15:24     Создать класс, расширяющий существующий объект #1
Здравствуйте. Собственно, сабж. Не могу с ходу сообразить, как это сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 15:24     Создать класс, расширяющий существующий объект
Посмотрите здесь:

C++ Создать класс - данные - абстрактный базовый класс. Создать производные классы
C++ Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Создать класс. Символьное поле должно быть задано как объект класса string C++
C++ Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс, в котором можно сохранить любой вызываемый объект или функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
08.12.2013, 15:28     Создать класс, расширяющий существующий объект #2
паттерн декоратор, не?))

Добавлено через 37 секунд
ну или можно просто отнаследоваться от класса и расширить его функциональность
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,771
Записей в блоге: 1
08.12.2013, 19:32  [ТС]     Создать класс, расширяющий существующий объект #3
Цитата Сообщение от Кудаив Посмотреть сообщение
паттерн декоратор
первый раз слышу, почитаю

Цитата Сообщение от Кудаив Посмотреть сообщение
ну или можно просто отнаследоваться от класса и расширить его функциональность
Это я сделал, но как это корректно применить к существующему объекту (экземпляру класса)? Пока пришла мысль создать экземпляр расширенного (унаследованного от) класса TImage, в конструкторе которого просто копируем в него данные существующего объекта, а существующий объект удаляем. Но по идее констуктор должен только скопировать данные, а не удалять существующий объект.
У меня вот какая ситуация: на форму в дизайн режиме я бросил и настроил TImage, далее в runtime хочу расширить функциональность этого TImage и далее в коде эту функциональность использовать. Можно было бы в design режиме не создавать этот TImage, а сразу в runtime создавать расширенный TImage, но вот хочу ещё и так попробовать.
P.S. пытаюсь у себя в проекте всё упростить в плане использования (минимизировать путаницы, ошибки, лишний код).
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
08.12.2013, 19:55     Создать класс, расширяющий существующий объект #4
kzru_hunter, можно написать просто обертку. Т.е. будет ещё один класс, в котором одно из полей - указатель на экземпляр нужного вам класса. В этом созданном классе уже реализуете все, что нужно, используя указатель на тот класс.

C++
1
2
3
4
5
6
7
8
9
struct Wrapper
{
void sort()
{
printf("Оп-па! Сортируем из Wrapper!\n");
mc->sort();
}
MyClass *mc;
}
http://ru.wikipedia.org/wiki/Декорат...проектирования)
Yandex
Объявления
08.12.2013, 19:55     Создать класс, расширяющий существующий объект
Ответ Создать тему
Опции темы

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