导航:首页 > 源码编译 > 在编译阶段进行的绑定称为静态绑定

在编译阶段进行的绑定称为静态绑定

发布时间:2022-03-30 22:59:57

⑴ 大工14春另外两个的答案

1-5:CAADC
6-10:ABBAD
第五题我搜的答案是C,但我个人认为有错,因为派生类中还可以不给出纯虚函数的实现,这样也就是说派生类中也可以不定义自己的该函数的版本
1-5:BAABB
6-10:BBBBB

⑵ 软考题目

静态绑定发生于数据结构和数据结构间,程序执行之前. 静态绑定发生于编译期, 因此不能利用任何运行期的信息. 它针对函数调用与函数的主体,或变量与内存中的区块。
动态绑定则针对运行期产生的访问请求,只用到运行期的可用信息. 在面向对象的代码中,动态绑定意味着决定哪个方法被调用或哪个属性被访问,将基于这个类本身而不基于访问范围。

答案:B

⑶ c++中动态绑定和静态绑定是什么意思

静态绑定是在编译阶段所执行的函数就已经被确定了的,而动态绑定是在程序执行时才决定使用哪个函数。

java中的静态绑定是怎么个回事

建议您先了解一下java的多态性.所谓静态绑定就是在程序编译时就绑定的.java中的变量都是静态绑定的,方法的话只有static和final(所有private默认是final的)是静态绑定的.

就是在编译的时候已经决定了变量的值和应该调用哪个类的方法.你要把它同动态绑定联系起来才好理解.例如:

class A {
static void method1() {
System.out.println("A.method1()");
}
void method2() {
System.out.println("A.method2()");
}
}
public class B extends A{
// will not override A.method1()
static void method1() {
System.out.println("B.method1()");
}
// will override the A. method2()
void method2() {
System.out.println("B.method2()");
}
public static void main(String[] args) {
A a = new B();
a.method1(); //因为A里面的method1是static,编译时就静态绑定了,所以输出 A.method1()
a.method2(); //而method2()不是static方法,a是由B new出来的,执行的时候会执行new它的那个类的method2()方法,所以输出B.method2(),这是java的多态性
}
}

⑸ Java代码的编译期绑定和运行期绑定是什么意思

如果打包成jar的话很好如果是exe的话就有点麻烦了可参考:想要把java生成可执行文件需要第三方软件的支持,不过在没有安装JDK的机器上是不可能运行JAVA程序的,哪怕是编译成为exe文件。将Java应用程序本地编译为EXE的几种方法(推荐使用JOVE和JET)1.从获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。2.利用微软的SDK-Java4.0所提供的jexegen.exe创建EXE文件,这个软件可以从微软的网站免费下载,地址如下:7.Instantiations公司的JOVE/jove/ejovesystem.htmJOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。8.JToEXEBravoZuluConsulting,Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目前在该公司的主页上找不到了。

⑹ c++里面什么时候用到动态联编(绑定),什么时候用到静态联编

联编是指一个计算机程序自身彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。 静态联编 静态联编是指联编工作出现在编译连接阶段,这种联编又称早期联编,因为这种联编过程是在程序开始运行之前完成的。 在编译时所进行的这种联编又称静态束定。在编译时就解决了程序中的操作调用与执行该操作代码间的关系,确定这种关系又称为束定,在编译时束定又称静态束定。下面举一个静态联编的例子。 #include class Point
{
public: Point(double i, double j)
{ x=i; y=j; }
double Area()
const { return 0.0; }
private: double x, y; };
class Rectangle:public Point { public: Rectangle(double i, double j, double k, double l);
double Area() const { return w*h; } private: double w, h; };
Rectangle::Rectangle(double i, double j, double k, double l):Point(i, j) { w=k; h=l; } void fun(Point &s) { cout<< }
void main()
{ Rectangle rec(3.0, 5.2, 15.0, 25.0); fun(rec); }
该程序的运行结果为: 0 输出结果表明在fun()函数中,s所引用的对象执行的Area()操作被关联到Point::Area()的实现代码上。这是因为静态联编的结果。在程序编译阶段,对s所引用的对象所执行的Area()操作只能束定到Point类的函数上。因此,导致程序输出了所不期望的结果。因为我们期望的是s引用的对象所执行的Area()操作应该束定到Rectangl类的Area()函数上。这是静态联编所达不到的。 动态联编 从对静态联编的上述分析中可以知道,编译程序在编译阶段并不能确切知道将要调用的函数,只有在程序执行时才能确定将要调用的函数,为此要确切知道该调用的函数,要求联编工作要在程序运行时进行,这种在程序运行时进行联编工作被称为动态联编,或称动态束定,又叫晚期联编。 动态联编实际上是进行动态识别。在上例中,前面分析过了静态联编时,fun()函数中s所引用的对象被束定到Point类上。而在运行时进行动态联编将把s的对象引用束定到Rectangle类上。可见,同一个对象引用s,在不同阶段被束定的类对象将是不同的。那么如何来确定是静态联编还是动态联编呢?C++规定动态联编是在虚函数的支持下实现的。 从上述分析可以看出静态联编和动态联编也都是属于多态性的,它们是不同阶段对不同实现进行不同的选择。上例中,实现上是对fun()函数参数的多态性的选择。该函数的参数是一个类的对象引用,静态联编和动态联编和动态联编实际上是在选择它的静态类型和动态类型。联编是对这个引用的多态性的选择。

⑺ 静态绑定的介绍

静态绑定是指在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程称之为静态绑定。

⑻ 动态绑定与静态绑定的说法不正确的是( )

所谓绑定是指,对于参与多态行为的类型,他们具有多态行为的接口是在公共基类的设计中就预先确定的。而非绑定则对于参与多态行为的类型,他们的接口没有预先定义。 在C++中通过继承实现的多态是动态绑定,通过模板实现的多态是静态绑定。动态绑定的接口是在运行期间(动态)完成的,静态绑定的接口是在编译期间(静态)完成的

阅读全文

与在编译阶段进行的绑定称为静态绑定相关的资料

热点内容
linux查看txt 浏览:151
linux硬盘格式化命令 浏览:518
神舞幻想存档放哪个文件夹 浏览:650
怎样把pdf转为图片 浏览:335
51单片机指令jz 浏览:91
ug后处理算法更改 浏览:370
河南服务器负载均衡是什么 浏览:684
docker容器执行命令 浏览:152
程序员成本管理思路 浏览:171
租界租界pdf 浏览:624
ipad上pdf 浏览:647
程序员没钱买房完整版 浏览:815
贞观政要pdf 浏览:713
php打印错误信息 浏览:337
zec是什么压缩机 浏览:286
vivov3如何刷安卓60 浏览:180
平板电脑开机解压 浏览:917
平板教师上网课用什么app 浏览:888
一遵命令 浏览:276
比心app锁一下是什么意思 浏览:276