使用模板方法分配函数指针?

时间:2014-04-20 13:19:06

标签: templates pointers visual-c++ c++-cli

考虑下面的Utility类:

它将包含许多具有相同签名int function(int a, int b);

的工厂方法

Utility.h

class Utility
{
 public:

    template<typename T, typename A, typename B> 
    static int get_function(T% function, int% number)
    {
        function = (T) add;
        number = 10;
        return 0;
    }

    static int add (int a, int b) {
        return a+b;
    }
};

这包含一个模板方法(get_function()),用于从Utility类中可用的工厂方法中分配函数指针。

Main.cpp的

typedef int (__stdcall *FP) (int a, int b);


ref class FPClass
{    
    public:
        static FP fp;

        static int number;

        static void apply_function()
        {
            Utility::get_function<FP, int, int>(FPClass::fp, number);
            cout <<  FPClass::fp(25, 45);
        }
};


void main()
{
    FPClass::apply_function();
}

我想要实现的是,通过模板方法(FPClass::fp)分配函数指针(Utility:get_function)。

但是被调用的函数(Utility:get_function)不修改函数指针参数(总是为null)。 那是为什么?

0 个答案:

没有答案