『C++Primer』6.7関数ポインタ

856 ワード

関数ポインタ
  • 関数のタイプは、その戻りタイプとパラメータタイプによって共に決定される.
  • は、ある関数を指すポインタを宣言します.
  • 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;
    }