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

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

Войти
Регистрация
Восстановить пароль
 
vratar32
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 14
#1

Как расширить класс в С++? - C++

18.06.2014, 00:20. Просмотров 286. Ответов 3
Метки нет (Все метки)

Требуется добавить в класс метод, не добавляя его в описание класса.Пример - библиотека <algorithm>. То есть есть у нас, скажем, файл типа map. При подключении <algorithm> становятся доступны новые методы для объекта(функции предикаты, поиск, сортировка). Если так нельзя, то как выйти из такой ситуации, не прибегая к созданию класса наследника с новыми методами?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2014, 00:20     Как расширить класс в С++?
Посмотрите здесь:

как расширить массив C++
C++ Как можно расширить STL своим набором функций?
C++ Как расширить работоспособность программы
Как преобразовать указатель на класс к указателю на асбтрактный класс? C++
C++ Расширить динамический массив
C++ Как расширить консольное окно
Как расширить длину строки до определённого значения? C++
C++ Как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С
Как добавить элемент в конец массива и расширить его на одну позицию? C++
C++ Свой класс вектор. Как расширить динамический массив
C++ Как расширить окно консоли
Как расширить строку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6346 / 2993 / 295
Регистрация: 04.12.2011
Сообщений: 8,029
Записей в блоге: 3
18.06.2014, 00:36     Как расширить класс в С++? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от vratar32 Посмотреть сообщение
становятся доступны новые методы для объекта(функции предикаты, поиск, сортировка).
Они же не становятся функциями-членами. Это шаблонные функции принимающие объекты шаблонных классов. Контейнеров в основном. Тот же предикат для своего объекта ещё определить надо или оператор сравнения по крайности. Если наследовать не хочется, можно так и поступить, - шаблон написать.
Но легче создать класс с вашим классом или объектом класса в качестве поля (ассоциировать) и собрать там недостающую функциональность. Или свободных функций принимающих объекты написать.
Можно еще указатели на интересующие методы в описании как поля разместить, а потом передавать в конструкторе или даже устанавливать в объекте () метод который интересен.
vratar32
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 14
18.06.2014, 13:32  [ТС]     Как расширить класс в С++? #3
Спасибо, помогло)
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6346 / 2993 / 295
Регистрация: 04.12.2011
Сообщений: 8,029
Записей в блоге: 3
18.06.2014, 16:33     Как расширить класс в С++? #4
Цитата Сообщение от vratar32 Посмотреть сообщение
Спасибо, помогло)
На всякий случай посмотрите:
http://ru.wikipedia.org/wiki/Functional_%28C++%29
и связыватель bind там же. Там на русском.j Может это близко к тому о чём Вы спросили.
Yandex
Объявления
18.06.2014, 16:33     Как расширить класс в С++?
Ответ Создать тему
Опции темы

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