У меня есть два класса, ClassWorking
и TemplateClass
, они никак не связаны.Есть ли способ сказать, я хочу, чтобы функция TemplateGenerate()
из моего TemplateClass
теперь работала как функция generate()
из моего класса ClassWorking
.
Как a (эта функция не существует)SetFunctionBehavior(&templateClassRef->templateGenerate, &classWorkingRef->generate)
Я знаю, что могу использовать указатель на функцию, чтобы заставить TemplateClass
получить указатель и вызвать его в классе, но это не то, что я хочу.
Это больше похоже на LD_Preload
, чтобы заменить внутреннюю часть функции без необходимости переписывать ее и без наследования от класса, у которого она есть.
, чтобы быть немного более явным, давайте рассмотрим это больше как конструкцию узла длякласс
TemplateClass
может иметь несколько функций, но не с одинаковым поведением
- TemplateClass
- TemplateGenerate() {will do this}
- TemplateGenerate() {will do that}
- TemplateGenerate() {will do like that}
, и когда я объявляю свой указатель класса templateClassRef->TemplateGenerate = TemplateGenerate() {will do that}
, но не с лямбда-выражением:)
Смысл в том, чтобы иметь что-то действительно общее без необходимости заново создавать класс для каждой потребности, например, у меня мог бы быть класс:
TemplateGenerate
- function A {A1 Behavior} Functiun B {B1 Behavoir} Functiun C {C1 Behavior}
{A2 Behavior} {B2 Behavoir} {C2 Behavior}
{A3 Behavior} {B3 Behavoir} {C3 Behavior}
И когдаЯ заявляю о своей функции Я говорю, что беру A1, B2, C3 или A1, B1, C2