C++指针的应用

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:15:04
能通俗,简单的介绍下指针的应用有什么好处啊!?

++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。

刚遇到这种语法时也许会让你止步不前。但你会发现,使用恰当的类型定义之后,复杂的语法是可以简化的。

个成员函数指针包括成员函数的返回类型,后随::操作符类名,指针名和函数的参数。初看上去,语法有点复杂。其实可以把它理解为一个指向原函数的指针,格式是:函数返回类型,类名,::操作符,指针星号,指针名,函数参数。

一个指向外部函数的指针声明为:

void (*pf)(char *, const char *);

void strcpy(char * dest, const char * source);

pf=strcpy;

一个指向类A成员函数的指针声明为:

void (A::*pmf)(char *, const char *);

声明的解释是:pmf是一个指向A成员函数的指针,返回无类型值,函数带有二个参数,参数的类型分别是char * 和 const char *。除了在星号前增加A:: ,与声明外部函数指针的方法一样。

赋值

给成员指针赋值的方法是将函数名通过指针符号amp;赋予指针名。如下所示:

class A

{

public:

void strcpy(char *, const char *);

void strcat(char *, const char *);

};

pmf = amp;A::strcpy;

有些老的编译器可以通过没有amp;号的赋值方式,但标准C++强制要求加上amp;号。

使用类型定