Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 面向对象编程 是在C++语言、java语言、C++语言等面向对象语言中可能嵌套的函数。如果是这样的话,有人能举个例子吗?_Oop - Fatal编程技术网

Oop 面向对象编程 是在C++语言、java语言、C++语言等面向对象语言中可能嵌套的函数。如果是这样的话,有人能举个例子吗?

Oop 面向对象编程 是在C++语言、java语言、C++语言等面向对象语言中可能嵌套的函数。如果是这样的话,有人能举个例子吗?,oop,Oop,嵌套函数与面向对象无关 C#没有嵌套函数,但可以使用lambdas(请参阅)。所有其他支持匿名函数的编程语言(包括C++0x)也是如此 您可以创建一个本地类,并重载call操作符以模拟嵌套函数(请参阅) 同时,许多非面向对象的语言,如(原始的)Pascal,本机支持嵌套函数,而GCC在C中作为扩展支持嵌套函数 具有嵌套函数与面向对象无关 C#没有嵌套函数,但可以使用lambdas(请参阅)。所有其他支持匿名函数的编程语言(包括C++0x)也是如此 您可以创建一个本地类,并重载call操作

嵌套函数与面向对象无关


  • C#没有嵌套函数,但可以使用lambdas(请参阅)。所有其他支持匿名函数的编程语言(包括C++0x)也是如此
  • 您可以创建一个本地类,并重载call操作符以模拟嵌套函数(请参阅)
  • 同时,许多非面向对象的语言,如(原始的)Pascal,本机支持嵌套函数,而GCC在C中作为扩展支持嵌套函数

    • 具有嵌套函数与面向对象无关


      • C#没有嵌套函数,但可以使用lambdas(请参阅)。所有其他支持匿名函数的编程语言(包括C++0x)也是如此
      • 您可以创建一个本地类,并重载call操作符以模拟嵌套函数(请参阅)
      • 同时,许多非面向对象的语言,如(原始的)Pascal,本机支持嵌套函数,而GCC在C中作为扩展支持嵌套函数

      正如其他答案所指出的,因为现在大多数语言中都可以创建匿名函数,所以可以将这样的函数对象分配给变量,这实际上会产生局部函数(尽管递归可能很棘手)

      < C++ > C++之前,匿名函数(称为lambdas)还没有。但是,您仍然可以在函数中声明函数,因为您可以在函数中声明类或结构。如果您使该类实现
      操作符()
      ,然后实例化该类并将其存储在命名变量中,您将有效地实现与C++1x中的lamda相同的功能


      问题在于,(a)它将更加冗长,(b)它将不被允许作为模板的参数。

      正如其他答案所指出的那样,因为现在大多数语言都可以创建匿名函数,所以可以将这样的函数对象赋给变量,从而有效地生成局部函数(尽管递归可能很棘手)

      在C++之前,C++中的匿名函数(称为lambdas)还不可用。但是,仍然可以在函数内声明函数,因为可以在函数内声明类或结构。如果使该类实现<代码>操作程序(),然后实例化该类并将其存储在命名变量中,您将有效地实现与C++1x中的lamda相同的功能


      问题是它将(a)更加冗长,(b)不允许作为模板的参数。

      Java是另一种面向对象语言。 它不支持嵌套方法,但支持嵌套类(这有助于解决问题):
      Java是另一种面向对象语言。 它不支持嵌套方法,但支持嵌套类(这有助于解决问题):

      你想解决什么?还是只是好奇?不,因为(1)我们不是奴隶,(2)你根本没有努力,(3)你指定了3种语言加上“etc”;(4)我没有看到任何大写字母,(5)这是谷歌解决的一个懒散的问题,不是StackOverflow。我投了反对票。你想解决什么?还是只是好奇?不,因为(1)我们不是奴隶,(2)你根本没做任何努力,(3)你指定了3种语言加上“等”;(4)我没有看到任何大写字母,(5)这是谷歌解决的一个懒惰的问题,不是StackOverflow。我投了反对票。