Хочется реализовать такую задумку.Код:class cl{public:cl(){ func = &func1; }int (*func)(int); // указатель на метод классаint func1(int i){return i+1; } // сами методыint func2(int i){return i+2; }int func3(int i){return i+3; }int f(int i){ return (*func)(i); }};Пока не получается. Компилятор ругается на присваивание указателя функции. Всевозможные варианты с добавлением имени класса и :: к положительному результату не привели. Скурил уже все книги и доки по С++.Вообще возможен ли данный вариант? добавлено спустя 23 минуты:Присвоение удалось осуществить такой конструкциейfunc = &cl::func1;при этом func объявляется так:int (cl::*func)(int)Но после всего этого вызвать функцию не могу. пробовал так:return func(i);return (*func)(i);return (cl::*func)(i)ни в какую.
|