Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Свой класс вектор. Как расширить динамический массив - C++
#include &lt;iostream&gt; using namespace std; template&lt;typename T&gt; class Vector { private: int current; int* m; int...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Как расширить строку - C++
Всем привет. Нужно расширить строку exstr до 48, но как только выхожу за 32 то пишет что я выхожу за пределы. Как быть в данной ситуации? ...

как расширить массив - C++
Привет.Как правильно расширить массив. Например. У меня есть массив и я вывел все отрицательные элемены как их вставить после ну...

Как расширить работоспособность программы - C++
Подскажите пожалуйста как сделать так чтобы программа работала при бОльших значениях...Вот у меня имеется программа для рекурсивного...

Как расширить окно консоли - C++
какой командой можно расширить окно консоли?а то у меня прога много выводит,и начало ,не с начала начинается,а где-то с центра самой...

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

Как расширить консольное окно - C++
Как расширить консольное окно, скажем на весь экран его растянуть

Как расширить длину строки до определённого значения? - C++
Подскажите,как расширить длину строки до определённого значения.

Как можно расширить STL своим набором функций? - C++
За предисловие сгодится то что я запорол контест из-за того, что юзал STL типа a.find(b) != string::npos Когда нормальные решения были...

Как добавить элемент в конец массива и расширить его на одну позицию? - C++
как добавить элемент в конец? просидел 5 часов , прошустрил кучу сайтов и не сообразил. (через vector не подходит) #define N 100 ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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