首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

动态绑定与静态绑定

为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。 需要理解四个名词: 1、对象的静态类型:对象在声明时采用的类型。...:绑定的是对象的静态类型,某特性(比如函数)依赖于对象的静态类型,发生在编译期。...4、动态绑定绑定的是对象的动态类型,某特性(比如函数)依赖于对象的动态类型,发生在运行期。...因为vfun是一个虚函数,它动态绑定的,也就是说它绑定的是对象的动态类型,pB和pD虽然静态类型不同,但是他们同时指向一个对象,他们的动态类型是相同的,都是D*,所以,他们的调用的是同一个函数:D::vfun...至于那些事动态绑定,那些事静态绑定,有篇文章总结的非常好: 我总结了一句话:只有虚函数才使用的是动态绑定,其他的全部是静态绑定。目前我还没有发现不适用这句话的,如果有错误,希望你可以指出来。

2.3K30

tkinter -- Text (2)

使用 tag 来指定文本的属性 创建一个指定背景颜色的 TAG 代码: import tkinter as tk root = tk.Tk() t = tk.Text(root) # 创建一个 TAG,...结果是文本颜色改变为红色了 同时使用两个文本指定同一个属性 没有特别设置的话,最后创建的那个会覆盖掉其它所有的设置 代码: import tkinter as tk root = tk.Tk() t = tk.Text...先向 Text 中添加了10行文本,创建一 tag,将第2行第6个至第二行行尾使用此 tag 使用自定义 mark 对文本块添加 tag 代码: import tkinter as tk root = ...tk.Tk() t = tk.Text(root) # 创建一个 TAG,其前景色为蓝色 t.tag_config('b', foreground='blue') # 使用 tag_lower 来降低...先向 Text 中添加了10行文本,创建两个 mark('ab'和'cd'),将使用这两个 tag 指定文本的文本块使用此 tag 使用 indexes 获得 Text 中的内容 分别使用内置的 indexes

61430

理解静态绑定与动态绑定

绑定就是一个方法的调用与调用这个方法的类连接在一起的过程被称为绑定 绑定分类 绑定主要分为两种: 静态绑定 和 动态绑定 绑定的其他叫法 静态绑定 == 前期绑定 == 编译时绑定 动态绑定 ==...后期绑定 == 运行时绑定 为了方便区分: 下面统一称呼为静态绑定和动态绑定 静态绑定 在程序运行前,也就是编译时期JVM就能够确定方法由谁调用,这种机制称为静态绑定 识别静态绑定的三个关键字以及各自的理解...,在运行前必须要进行程序的编译过程,那么在编译期进行的绑定是前期绑定,在程序运行了,发生的绑定就是后期绑定 代码理解 public class Father {...那么上面的绑定方式是什么呢?...动态绑定和静态绑定的特点 静态绑定 静态绑定在编译时期触发,那么它的主要特点是 1、编译期触发,能够提早知道代码错误 2、提高程序运行效率 动态绑定 1、使用动态绑定的前提条件能够提高代码的可用性,使代码更加灵活

1.7K80

tkinter -- Text(1)

创建第一个 Text 代码: import tkinter as tk root = tk.Tk() t = tk.Text(root) t.pack() root.mainloop() 效果: ?...root 中含有一 Text 控件,可以在这个控件内输入文本,可以使用 Ctrl+C/V 向 Text 内添加剪切板上的内容(文本),不接受 Ctrl+Z 执行操作 向 Text 中添加文本 代码: import... tkinter as tk root = tk.Tk() t = tk.Text(root) # 向第一行,第一列添加文本0123456789 t.insert(1.0, '0123456789')...insert 的第一个参数为索引;第二个为添加的内容 使用 \n来换行 代码: import tkinter as tk root = tk.Tk() t = tk.Text(root) # 向第一行...SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常 代码: import tkinter as tk root = tk.Tk() t = tk.Text(root) # 向Text

55531
领券