First of all, write down the whole process of how I encountered these problems
when I learned how to overload the **function call operator**, and I learned about **function object**, which led to the concept of **function closures**, **lamda expression** , **lexical scope** and finally **First-Class Function** .
First overload the **function call operator** :
```c++
What is the lexical scope and Closure First-Class Function in C++(C++中头等函数,词法范围,闭包)
原文:https://www.cnblogs.com/christopherJames/p/14810705.html