Нов съм в шаблоните и имам малък проблем с използването им. Публикувам кода по-долу, за който не мога да кодирам. Нуждаете се от помощ как да направите това парче
Имам нужда от нещо като указател на функция, който да бъде предаден като аргумент на шаблона към класа на тестера, а екземплярът на TClass да бъде предаден като параметър към конструктора. В конструктора функционалният указател ще се използва за обвързване на testFunc към членска променлива на тестерния клас, който е функционален указател. След това, докато тестващият клас е унищожен, ще бъде извикан testFunc. Не може да се разреши приспадането на типа за шаблона
#include <iostream>
using namespace std;
template< class TClass, TClass::*fptr>
class tester
{
public:
tester(TClass & testObj, ...) //... refer to the arguments of the test function which is binded
{
//bind the function to member fptr variable
}
~tester()
{
//call the function which was binded here
}
private:
(TClass::*fp)(...) fp_t;
};
class Specimen
{
public:
int testFunc(int a, float b)
{
//do something
return 0;
}
}
int main()
{
typedef int (Specimen::*fptr)(int,float);
Specimen sObj;
{
tester<fptr> myTestObj(sObj, 10 , 1.1);
}
return 0
}
TClass::*fptr
като аргумент на шаблона, тъй като подписът липсва. - person Walter   schedule 12.11.2013std
в отговор. - person Walter   schedule 12.11.2013