21xrx.com
2024-12-23 02:15:52 Monday
登录
文章检索 我的文章 写文章
如何初始化 C++ 函数指针
2023-07-03 12:34:39 深夜i     --     --
C++ 初始化 函数指针

C++ 函数指针是指向函数的指针,这种指针可用于将函数作为参数传递给其他函数,或将其作为返回值返回。在使用函数指针之前,您需要对其进行初始化。以下是几种初始化函数指针的方法:

1. 初始化指向已命名函数的指针:


int add(int a, int b) {

  return a + b;

}

int (*func_ptr)(int, int) = add;

在这个例子中,我们定义了一个名为“add”的函数,它将两个整数相加并返回它们的和。然后,我们定义了一个名为“func_ptr”的指向该函数的指针,并将其初始化为“add”。

2. 初始化指向匿名函数的指针:


int (*func_ptr)(int, int) = [](int a, int b) {return a + b;};

在这个例子中,我们使用Lambda表达式定义了一个匿名函数,该函数也将两个整数相加并返回它们的和。然后,我们定义了一个名为“func_ptr”的指向该匿名函数的指针,并将其初始化为Lambda表达式。

3. 初始化指向静态成员函数的指针:


class MyClass {

public:

  static int add(int a, int b) {

    return a + b;

  }

};

int (*func_ptr)(int, int) = &MyClass::add;

在这个例子中,我们定义了一个名为“add”的静态成员函数,它包含在名为“MyClass”的类中。然后,我们定义了一个名为“func_ptr”的指向该静态成员函数的指针,并使用“&MyClass::add”将其初始化。

4. 初始化指向非静态成员函数的指针:


class MyClass {

public:

  int add(int a, int b) {

    return a + b;

  }

};

int (MyClass::*func_ptr)(int, int) = &MyClass::add;

在这个例子中,我们定义了一个名为“add”的非静态成员函数,它包含在名为“MyClass”的类中。然后,我们定义了一个名为“func_ptr”的指向该非静态成员函数的指针,并使用“&MyClass::add”将其初始化。

总结:函数指针是C++中的一种重要概念,可以使用它将函数作为参数传递给其他函数或将其作为返回值返回。在使用函数指针之前,您需要对其进行初始化,即将其指向所需的函数。上述几种初始化函数指针的方法可以帮助您理解C++中函数指针的运作方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复