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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,774
Записей в блоге: 1
#1

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

08.12.2013, 15:24. Просмотров 253. Ответов 3
Метки нет (Все метки)

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

C++ Как удалить объект по указателю на базовый класс?
Указатель на класс, создавший объект C++
C++ Класс содержащий объект типа ofstream - не компилится!
Объект cin и класс istream C++
C++ Как передать ссылку на объект в класс
Создать класс. Символьное поле должно быть задано как объект класса string C++
Создать класс, в котором можно сохранить любой вызываемый объект или функцию C++
В C# создать объект, класс которого написан в C++ C++
C++ Передача указателя в класс на объект другого класса
C++ Создать класс CMatrix, описывающий объект – действительные матрицы заданного размера
C++ Создать объект стек и создать объект очередь с перегруженными операциями
Создать объект, класс которого указан в строке C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
08.12.2013, 15:28     Создать класс, расширяющий существующий объект #2
паттерн декоратор, не?))

Добавлено через 37 секунд
ну или можно просто отнаследоваться от класса и расширить его функциональность
kzru_hunter
 Аватар для kzru_hunter
1084 / 759 / 58
Регистрация: 01.02.2011
Сообщений: 1,774
Записей в блоге: 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     Создать класс, расширяющий существующий объект
Ответ Создать тему
Опции темы

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