问题标签 [static-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
108399 浏览

binding - 早期绑定和后期绑定有什么区别?

早期绑定和后期绑定有什么区别?

0 投票
2 回答
609 浏览

c# - C# 中的非虚拟方法、静态绑定和接口

我知道非虚拟方法是静态绑定的,据我所知,这意味着它在编译时本身就知道将在哪个对象上调用哪个方法。该决定是根据对象的静态类型做出的。让我感到困惑的是接口(而不是class)和静态绑定。

考虑这段代码,

演示代码:http: //ideone.com/JOVmi

我明白了Line 1。编译器可以知道b.f()将调用它,B.f()因为它知道它的静态类型bB.

但是编译器如何在编译时自己决定ia.f()调用A.f()? 什么是对象的静态类型ia?不是IA吗?但那是一个接口,并且没有任何f(). 那么它是如何工作的呢?

为了使案例更令人费解,让我们考虑这种static方法:

正如评论所说,实现接口的类可能太多IA,那么编译如何静态决定ia.f()调用哪个方法?我的意思是,假设我有一个类定义为:

如您所见,C与 不同,除了派生于 之外,还B实现了. 这意味着,我们在这里有不同的行为:IAA

演示代码:http: //ideone.com/awCor

我如何理解所有这些变化,尤其是接口和静态绑定如何协同工作?

还有更多(ideone):

请帮助我理解所有这些,以及 C# 编译器如何完成静态绑定。

0 投票
3 回答
279 浏览

java - java中,如果调用了不被任何子类继承的方法,是使用动态绑定还是静态绑定?

java中,如果调用了不被任何子类继承的方法,是使用动态绑定还是静态绑定?

我知道在这种特殊情况下它不会对输出产生任何影响,但只是想知道这一点。

0 投票
3 回答
6265 浏览

c++ - Array的静态绑定和动态绑定的区别

我刚刚阅读了关于我现在在 stackoverflow 中询问的同一主题的所有搜索结果,但这并没有真正回答我的好奇心。但这就是问题所在。

问题

1.)据我所知,静态绑定意味着它是在编译时设置的,并且在运行时存在,而动态绑定意味着它是在运行时设置的。

2.)所以我读的书介绍了动态数组,它提到可以在运行时设置动态数组大小。以这种方式完成。

编码


3.)在这段代码中,书中提到动态数组大小可以在运行时设置。所以出于好奇,我试试这个。

编码


4.)上面的代码也有效,所以我只是好奇动态数组有什么特别之处,因为普通的静态数组可以做同样的工作。

5.)是因为动态数组可以在运行时释放它的内存,而静态不能这就是它如此特别的原因吗?


感谢您花时间阅读我的问题,请指出我犯的任何错误。

0 投票
2 回答
295 浏览

c++ - 非重写虚函数的绑定类型

考虑virtual function基类not overriden中的 a 在派生类中的情况。然后使用一个base class pointer to a derived class object虚函数被调用。

我知道函数调用将在编译时解析为基类中的函数。

问题

由于函数在派生类中没有被覆盖,函数调用会在编译时绑定到函数实现,还是会延迟绑定直到运行时?

0 投票
1 回答
162 浏览

php - PHP 兄弟类静态绑定

在扩展相同父级的多个类中自动加载时,它们似乎会覆盖彼此的静态变量。

使用下面的代码,如果$staticvar仅在父Controller类中定义,Foo::$staticvar则被后续调用的类覆盖,这些类也扩展Controller

但是,如果 Foo 本身也定义了$staticvar = null;,则它不会被覆盖。为什么是这样?


系统.php


如果 foo.php 是这样的:

我得到输出:


但是,如果我将 foo.php 更改为:

我得到输出:

0 投票
3 回答
31941 浏览

binding - Shallow & Deep Binding - 这个程序会打印什么?

我不知道该怎么做...

对于以下两种绑定方法中的每一种,程序会打印什么?A) 浅绑定 B) 深绑定

谢谢您的帮助!

0 投票
2 回答
1345 浏览

c# - 以下 C# 程序是使用静态绑定还是动态绑定?

我有以下课程:

主要功能1:

主要功能2:

我了解主要功能 2 使用动态绑定。
如果我在 Rectangle 类的 calArea 方法中将 override 关键字更改为 new,则它是静态绑定。主要功能1呢?它使用静态/动态绑定吗?

0 投票
1 回答
130 浏览

php - PHP 后期静态绑定无法正常工作

在 PHP 中编码和使用后期静态绑定时,我发现了一些奇怪的行为。在其父类中创建的子对象static()可以访问其父类的私有方法。

这是一个例子:

输出:

这是正确的行为吗?

0 投票
2 回答
12612 浏览

c - C(严格来说是 C,不是 C++)中的静态和动态绑定是什么?

我最初担心发布这个问题,以免它重复。但即使在谷歌上搜索了许多关键字后,我在 StackOverflow 上也找不到任何解释 C 的静态和动态绑定的链接。虽然有 C++ 的问题和答案,但是所有涉及classes和显然不适合 C 的东西。StackExchange 之外的链接非常可疑。

我需要知道这两个绑定之间的严格定义和对比,如果你能花一些时间来回答它,或者给我 StackOverflow 上的链接,以免我弄错并且它已经得到回答,我将不胜感激之前详细的。

我打算对以下内容有一个清晰的想法:

  1. C中的绑定。
  2. C中的静态与动态绑定。

编辑如果您可以用一些简单的代码片段解释差异,那将非常有帮助。