有关C的一些问题,Status PreOrderTraverse(Status (*visit)(TelemType e))这句是什么意思啊?
答案:1 悬赏:0 手机版
解决时间 2021-05-04 21:03
- 提问者网友:niaiwoma
- 2021-05-04 01:33
我c++熟练点,C不是很熟,这个*visit 是外联函数还是?
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-05-04 01:43
那是个函数指针,这里用作回调,你熟悉c++的话应该对这个内容不陌生,c++STL里边大部分算法的都有用回调函数,比如
#include <iostream>
#include <algorithm>
using namespace std;
void f( int n )
{
cout << n * n << ' ';
}
// 接受无返回,带一个int参数的函数指针
void ff( int* beg, int* end, void ( *f )( int ) )
{
for_each( beg, end, f );
cout.put( '\n' );
}
int main()
{
int a[] = { 1,2,3,4,5 };
ff( a, a + 5, f );
}
这里的for_each接受的就是一个回调函数,为了让你明白其实质,所以又写了一个ff,希望你能看明白。
#include <iostream>
#include <algorithm>
using namespace std;
void f( int n )
{
cout << n * n << ' ';
}
// 接受无返回,带一个int参数的函数指针
void ff( int* beg, int* end, void ( *f )( int ) )
{
for_each( beg, end, f );
cout.put( '\n' );
}
int main()
{
int a[] = { 1,2,3,4,5 };
ff( a, a + 5, f );
}
这里的for_each接受的就是一个回调函数,为了让你明白其实质,所以又写了一个ff,希望你能看明白。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯