C++、delphi 、.net中函数指针的异同
2008-07-28 23:51
309 查看
首先看一个C++的函数指针的实例:
int test(int a)
{
console.writeln(a);
return a;
}
//方法一,指针申明一个函数指针变量。
int (*pf)(int x);//申明一个函数指针。
pf=test; //给函数指针复制,即将test函数的地址赋值给函数指针变量pf.
pf(32); //用函数指针调用函数。
//方法二,先申明一个指针类型,然后由类型申明一个指针变量。
type int(*Pf)(int x); //申明一个指针类型。
Pf pf1; //申明一个指针变量。
pf1=test; //给指针变量赋值。
pf1(32); //调用函数。
第二看一个delphi的例子:
type
TMyProc=procedure(x:integer);//申明一种指针类型。
var
pf:TMyProc; //申明一个指针变量。
procedure test(a:integer);
begin
ShowMessage(IntToStr(a));
end;
pf:=Test; //给指针变量赋值。
pf(32); //调用函数。
第三看一个.net的例子:
delegate void Test(int a);//申明一种代理类型。
Test pf; //申明代理变量。
void test(int x)
{
console.writeln(x);
}
pf=new Test(test); //给代理变量赋值
pf(32); //调用函数
由以上的三个实例,不难看出,其实C++中的函数指针,delphi中的函数类型,.net中的代理其实都是一个函数指针。都是从C中的函数指针变相而来。
.net中的事件,其实可以看作是一个代理的实例。其中的event关键字其实就是new关键字的另外一种形式。
int test(int a)
{
console.writeln(a);
return a;
}
//方法一,指针申明一个函数指针变量。
int (*pf)(int x);//申明一个函数指针。
pf=test; //给函数指针复制,即将test函数的地址赋值给函数指针变量pf.
pf(32); //用函数指针调用函数。
//方法二,先申明一个指针类型,然后由类型申明一个指针变量。
type int(*Pf)(int x); //申明一个指针类型。
Pf pf1; //申明一个指针变量。
pf1=test; //给指针变量赋值。
pf1(32); //调用函数。
第二看一个delphi的例子:
type
TMyProc=procedure(x:integer);//申明一种指针类型。
var
pf:TMyProc; //申明一个指针变量。
procedure test(a:integer);
begin
ShowMessage(IntToStr(a));
end;
pf:=Test; //给指针变量赋值。
pf(32); //调用函数。
第三看一个.net的例子:
delegate void Test(int a);//申明一种代理类型。
Test pf; //申明代理变量。
void test(int x)
{
console.writeln(x);
}
pf=new Test(test); //给代理变量赋值
pf(32); //调用函数
由以上的三个实例,不难看出,其实C++中的函数指针,delphi中的函数类型,.net中的代理其实都是一个函数指针。都是从C中的函数指针变相而来。
.net中的事件,其实可以看作是一个代理的实例。其中的event关键字其实就是new关键字的另外一种形式。
相关文章推荐
- C++:函数指针
- c++成员函数指针揭秘
- C++基础---函数指针
- C++函数返回指针结果的坑.
- Delphi与C++之间通过实现函数与对象共享
- [转]C/C++语言中指向函数的指针
- 【C/C++语言基础学习】在主函数的定义的指针数组、二维数组通过三级指针在被调用函数分配内存
- 《C++ Prime Plus 第七章》—数组、函数、指针初步
- c++指针和引用异同
- c++ 函数指针
- [C++基础]那些容易被混淆的概念:函数/数组指针-指针函数/数组,类/函数模板-模板类/函数
- [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good
- 使用纯C函数指针调用C++的类成员函数
- C++ 成员函数指针
- 【C++总结】函数形参,返回const对象与非const对象,成员函数,函数指针
- 成员函数指针与高效C++委托 (delegate)
- ◆ C++中通过溢出覆盖虚函数指针列表执行代码
- C/C++中函数指针
- C++ 函数指针
- c++ typedef 函数指针