2015-07-15 3 views
2

В Delphi существует class helpers, который может добавлять методы для определенного класса.Класс helper in C++

Есть ли какой-либо шаблон дизайна на C++, который может сделать то же самое?

+2

Из-за использования в ссылке самое близкое, о чем я могу думать, это бесплатные функции, которые имеют этот класс в качестве параметра. Если предложение синтаксиса унифицированных вызовов проходит, вы в конечном итоге сможете вызвать те, которые имеют тот же синтаксис, как если бы они были функциями-членами. – chris

+0

Почему кто-то минует этот вопрос? Это неверно? – vladon

+0

(Не мой нисходящий знак) В C++ вы можете получить из 'struct', тогда как вы не можете получить из« Record »Delphi. Это отнимает одно из оправданий. – MSalters

ответ

2

В .net у вас есть методы расширения, которые похожи. В Python вы можете использовать патч обезьяны, который похож. В стандартном C++ нет ничего похожего на помощников класса Delphi.

+0

Я всего лишь случайный читатель C++, но, возможно, можно использовать методы расширения в C++. См. Мою ссылку в комментарии к вопросу. –

+0

@LURD Это функция, не являющаяся членом, которая принимает объект в качестве первого параметра. Вместо 'Foo (sc)', для истинного аналога потребуется 'sc.Foo()'. –

+0

Да, похоже, это обсуждалось здесь, [Методы расширения в C++] (http://mariusbancila.ro/blog/2014/10/15/extension-methods-in-cpp/). –