在C#、Java、C++等面向对象语言中,函数的嵌套是可能的吗?如果是这样的话,谁能举个例子?
发布于 2010-04-02 15:08:00
拥有嵌套函数与面向对象无关。
运算符来模拟一个嵌套函数(参见is it possible in C or C++ to create a function inside another?).
发布于 2010-04-02 15:10:58
Implementing Nested Functions in C#。
发布于 2010-04-02 15:46:24
正如其他答案所指出的那样,因为现在可以在大多数语言中创建匿名函数,所以可以将这样的函数对象赋给变量,这将有效地产生局部函数(尽管递归可能很棘手)。
在C++1x之前的C++中,匿名函数(称为lambda)还不可用。但是,您仍然可以在函数中声明函数,因为您可以在函数中声明类或结构。如果让类实现operator(),然后实例化该类并将其存储在命名变量中,就可以有效地实现与C++1x中lamda相同的效果。
问题是它将(a)变得更加冗长,(b)它将不被允许作为模板的参数。
https://stackoverflow.com/questions/2565459
复制相似问题