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

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

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

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

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

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

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

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

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