C/C+--関数を書きます.そのパラメータは関数を指すポインタで、戻りタイプも関数を指すポインタです.
1514 ワード
文字を指すポインタと整数への参照をパラメータとし、値を返さない関数です.この関数を指すポインタです.このポインタをパラメータとする関数.そして一つ
このポインタの関数を返します.このようなポインタをパラメータとし、そのパラメータを戻り値として返す関数の定義を書きます.ヒント:typedefを使用します.
実行結果:
このポインタの関数を返します.このようなポインタをパラメータとし、そのパラメータを戻り値として返す関数の定義を書きます.ヒント:typedefを使用します.
/*************************************************************************
> File Name: practice_1.cpp
> Author:
> Mail:
> Created Time: 2016 03 15 22 35 36
************************************************************************/
#include <iostream>
using namespace std;
// ,
void fun1(char *ch, int & rval);// ch, rval
// fun1
typedef void (*pfun1)(char* ch, int & rval);
pfun1 pf = fun1;//pf fun1
// pfun1
void fun2(pfun1);//
// pfun1
pfun1 fun3();
// , fun1 , fun1
pfun1 fun4(pfun1 pf)
{
return pf;
}
int main()
{
char* str = "cplusplus";
int val = 100;
cout << " fun1(str,val):";
fun1(str, val);
pfun1 pf1 = fun1;
cout << " pf1(str, val): ";
pf1(str, val);
pfun1 pf2 = fun4(pf1);
cout << " pf(str, val): ";
pf(str, val);
return 0;
}
void fun1(char* ch, int & rval)
{
cout << "ch = " << ch << ", rval++ = " << rval++ << endl;
}
実行結果:
fun1(str,val):ch = cplusplus, rval++ = 100
pf1(str, val): ch = cplusplus, rval++ = 101
pf(str, val): ch = cplusplus, rval++ = 102