《C++ Primer》6.7 函数指针

函数指针

  • 函数的类型由它的返回类型形参类型共同决定。
  • 这样去声明一个指向某函数的指针:
bool fuck(string &, string &);
bool (*pf)(string &, string &) = fuck; // pf旁边的括号是必需的
  • 使用函数指针,我们可以这样取用:
pf = lengthCompare;
pf = &lengthCompare; // 取地址符是可选的
  • 我们还能直接使用指向函数的指针调用该函数,无需提前解引用指针:
bool b1 = pf("fuck", "holy shit");
bool b2 = (*pf)("fuck", "holy shit");
  • 使用后置函数返回类型来使用函数返回一个指向某函数的指针:
string add(string &s) {...};
string cut(string &s) {...};
auto fuc(string::size_type len) -> string(*)(string &s) {...};

int main() {
  string s = "当然是选择原谅她啊。";
  auto pf = fuc(s.length());
  pf(s);
  cout << s << endl;
  return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容