前言
目前在游戏开发中用的比较多的几种语言的方法引用或指针的用法
C++
函数指针(CPP)
区分函数指针与返回值指针
#include <iostream>
using namespace std;
double PrintIt(int);
typedef double (*OneIntFunc)(int);
double PrintIt(int param)
{
cout << "param:" <<param<<endl;
return 0.0;
}
void CallPrint(OneIntFunc func)
{
cout << func(1);
}
void CallPrint2(double (*func)(int))
{
cout << func(1);
}
int main()
{
OneIntFunc func = PrintIt;
CallPrint(func);
}
c#
C#委托
using System;
namespace ConsoleApp1
{
class Program
{
delegate double OneIntFunc(int param);
double PrintIt(int param)
{
Console.WriteLine(param);
return 0.0f;
}
void CallPrint(OneIntFunc func)
{
Console.WriteLine(func(1));
}
static void Main(string[] args)
{
Program p = new Program();
p.CallPrint(p.PrintIt);
}
}
}
Lua
local test = {}
function test:Do1()
print("Do1")
end
function test.Do2()
print("Do2")
end
test.Do3 = function()
print("Do3")
end
local do1 = test.Do1
do1(test)
local do2 = test.Do2
do2()
local do3 = test.Do3
do3()
总结
方法引用是在代码设计中一个重要的组成,是需要熟练掌握的