前言

在以前写 js 时,经常使用回调函数,回调函数在某些场景用起来还是挺方便的。

使用场景例如: 
1. 有一个 QMap 需要在许多地方遍历他的数据,但是我又不想每个地方都写一次 for;
2. 于是我就想在一个地方写,然后 for 中的执行内容由外部传入;
3. 这是我想到以前写 js 中的回调了,查了下,写了一个 demo

具体思路

思路: 将一个函数名作为参数传递给一个函数

代码实现


void GetCount(int count)
{
   int cnt = count*2;
   qDebug() << cnt;
}

void forTemplate(void (callback)(int))
{
   for(int i = 0; i < 5; i++)
   {
      callback(i);
   }
}

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   // MainWindow w;
   // w.show();

   forTemplate(GetCount);

   return a.exec();
}