dynamic-binding相关内容

未调用 C++ 覆盖的函数

我遇到了一个问题,即不调用重载函数,而是调用基函数.我怀疑这与项目文件之间的拆分方式有关. 在文件 obj1.h/obj1.cpp 我有这样的东西 类 obj1{上市:无效打印();};无效 obj1::print(){cout 在文件 obj2.h/obj2.cpp 我有这样的东西: #include "obj1.h"类 obj2:公共 obj1{上市:无效打印();};无效 ob ..
发布时间:2022-01-24 16:55:27 C/C++开发

何时将 C++ 中的函数标记为虚拟函数?

由于方法静态绑定的 C++ 特性,这会影响多态调用. 来自维基百科: 虽然这种调度机制涉及的开销很低,但它对于该语言的某些应用领域可能仍然很重要旨在针对.出于这个原因,Bjarne StroustrupC++ 的设计者,选择使动态调度可选并且非默认.只有使用 virtual 关键字声明的函数才会基于对象的运行时类型调度;其他功能将根据对象的静态类型进行分派. 所以代码: 多边形 ..
发布时间:2022-01-24 16:09:01 C/C++开发

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

我不知道该怎么做... 函数 f1(){无功 x = 10;函数 f2(fx){无功x;x = 6;外汇();};函数 f3(){打印 x;};f2(f3);}; 对于以下两种装订方法中的每一种,程序将打印什么?A) 浅绑定B) 深度绑定 感谢您的帮助! 解决方案 深/浅绑定只有在过程可以作为参数传递给函数时才有意义. 深度绑定在过程通过时绑定环境作为论据. 浅绑定 绑定 ..

没有“抽象"的 Java 中的运行时多态性?

我正在阅读官方 Oracle 教程,其中以 3 个类的类层次结构示例介绍了多态性的概念;Bicycle 是超类,MountainBike 和 RoadBike 是 2 个子类. 它展示了 2 个子类如何通过声明它的不同版本来覆盖在 Bicycle 中声明的方法“printDescription". 最后,教程最后提到了 Java 虚拟机 (JVM) 为每个变量中引用的对象调用适当的方法 ..
发布时间:2021-11-26 16:18:16 Java开发

Java动态绑定和方法覆盖

昨天我进行了两个小时的技术电话面试(我通过了,哇哦!),但我完全忽略了以下有关 Java 中动态绑定的问题.更令人费解的是,因为几年前我当助教的时候,我曾经向本科生教过这个概念,所以我给他们错误信息的前景有点令人不安...... 这是给我的问题: /* 下面程序的输出是什么?*/公共类测试{公共布尔等于(测试其他){System.out.println("Test.equals 内部"); ..
发布时间:2021-11-25 19:44:19 Java开发

没有“抽象"的 Java 中的运行时多态性?

我正在阅读官方 Oracle 教程,其中以 3 个类的类层次结构示例介绍了多态性的概念;Bicycle 是超类,MountainBike 和 RoadBike 是 2 个子类. 它展示了 2 个子类如何通过声明它的不同版本来覆盖在 Bicycle 中声明的方法“printDescription". 最后,教程最后提到了 Java 虚拟机 (JVM) 为每个变量中引用的对象调用适当的方法 ..
发布时间:2021-11-25 08:50:45 Java开发

Clojure中with-local-vars和with-bindings之间的区别

Clojure的文档 with-local-vars 和 with-bindings 不足以区分两者。 解决方案 新的 var s由 with-local-vars 。现有的 var 暂时被 with-bindings 反弹。在两种情况下,绑定都是线程本地的。 请注意,据我所知, with-bindings 是告诉,主要用作通过使用 get-thread-bindings 返回的映射 ..
发布时间:2020-10-02 21:28:18 其他开发

在运行时而不是编译时绑定的__CLASS__的版本

在下面的PHP代码中,我想将Foo类中的__CLASS__魔术常数替换为函数__X__()(或类似的东西),以便从实例中调用方法hello()时Bar类的c4>,它显示hello from Bar(而不是hello from Foo).我想这样做 而不覆盖Bar内部的hello(). 所以基本上,我想要一个__CLASS__的版本,该版本在运行时而不是在编译时动态绑定. class F ..
发布时间:2020-06-13 18:34:18 PHP

仍然对Objective-C的动态绑定感到困惑

问题来自我刚刚添加到的答案中的评论这个问题,但不能重复. 从@Bavarious到该问题的答案对我来说很有意义,但是我仍然感到困惑,为什么即使对象是id,运行时也无法将方法绑定到正确的对象?据我了解,dynamic binding或dynamic typing是编译器无法知道id后面的对象,但是运行时应该知道并且选择正确的对象作为消息的接收者.但是为什么运行时无法做到这一点? 解决方案 ..
发布时间:2020-06-13 18:34:01 移动开发

Guice:设置来自XML文件的绑定

我正在尝试使用Guice并借助XML文件进行所有绑定.在我的模块中(假设为"CustomModule"),我想加载一个XML文件并解析它以设置所有绑定. 我能够加载XML文件并检索所有需要的值(以下是我的XML文件的一个示例),但是我无法将这些值用于bind(interfaceValue).to(implementationValue);. 到目前为止我已经尝试过的: 加载XML ..
发布时间:2020-06-13 18:33:58 Java开发

为什么将其称为“方法隐藏"?

从 docs 中,“如果子类定义了一个具有与超类中的静态方法相同签名的静态方法,然后子类中的方法将其隐藏在超类中." 我了解方法隐藏和覆盖之间的区别.但是,奇怪的是子类隐藏了超类方法,因为如果您具有以下条件: public class Cat extends Animal { public static void testClassMethod() { Syst ..
发布时间:2020-05-20 01:27:39 Java开发

Objective-C使用动态绑定,但是如何?

我知道Objective-C对所有方法调用都使用动态绑定.如何实施?在编译之前,objective-c会“变成C代码"并且仅对所有内容使用(void *)指针吗? 解决方案 从概念上讲,正在发生的事情是存在一个调度程序库(通常称为Objective C运行时),并且编译器将进行如下转换: /p> [myObject myMethodWithArg:a andArg:b ]; 进入 ..
发布时间:2020-05-19 01:19:46 移动开发