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

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

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

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

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

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

Свой класс вектор. Как расширить динамический массив - 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++
Подскажите пожалуйста как сделать так чтобы программа работала при бОльших значениях...Вот у меня имеется программа для рекурсивного...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,490
Записей в блоге: 4
18.06.2014, 00:36     Как расширить класс в С++? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от vratar32 Посмотреть сообщение
становятся доступны новые методы для объекта(функции предикаты, поиск, сортировка).
Они же не становятся функциями-членами. Это шаблонные функции принимающие объекты шаблонных классов. Контейнеров в основном. Тот же предикат для своего объекта ещё определить надо или оператор сравнения по крайности. Если наследовать не хочется, можно так и поступить, - шаблон написать.
Но легче создать класс с вашим классом или объектом класса в качестве поля (ассоциировать) и собрать там недостающую функциональность. Или свободных функций принимающих объекты написать.
Можно еще указатели на интересующие методы в описании как поля разместить, а потом передавать в конструкторе или даже устанавливать в объекте () метод который интересен.
vratar32
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 15
18.06.2014, 13:32  [ТС]     Как расширить класс в С++? #3
Спасибо, помогло)
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 ...

Класс: как обратиться к методу производного класса через итератор на базовый класс? - C++
Есть абстрактный и два порожденных. Хочу создать например list&lt;Base*&gt; list1; затем добавляю себе в список: ...

Как создать класс со вложенной структурой указателей на класс? - C++
В классе Concept хранится массив (точнее map) структур Rel. Сама же структура Rel должна содержать указатели на класс Concept. ...


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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,490
Записей в блоге: 4
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