C++静态绑定和动态绑定(无师自通)
2023-06-13 09:11:59 时间
当函数名被调用时,编译器将选择应该执行的代码,此时即称编译器绑定了函数名。换句话说,当函数被调用时,编译器就会将该该函数的名称和它的定义绑定在一起。
静态绑定发生在编译时,并将名称绑定到一个固定的函数定义,然后在每次调用该名称时执行该定义。例如,编译器使用静态绑定将以下语句中的 getName 绑定到 Person 类(而不是其他类)中的 getName 定义:
for (int k = 0; k people.size (); k++) cout people [k] - getName () endl; }
在静态绑定中,编译器使用编译时可用的类型信息。如果代码在继承层次结构中的不同类的对象上运行,则编译器可用的唯一类型信息将是用于访问所有对象的基类指针类型。因此,静态绑定将始终使用基类版本的成员函数。
相反,动态绑定发生在运行时。动态绑定仅在编译器可以确定运行时子类对象所属的确切类时才起作用。编译器然后使用这个运行时类型信息来调用该类中定义的函数版本。
为了使动态绑定成为可能,编译器将运行时类型信息存储在具有虚函数的类的每个对象中。动态绑定始终使用对象的实际类中的成员函数版本,而无视用于访问对象的指针的类。
22179.html
相关文章
- 图解快速排序(C++实现)
- c++ auto类型_auto C++
- C++构造函数的作用_c++什么是构造函数
- C++stl库_c++库
- C++基本概念_c语言 c++区别
- c++的链表-链表入门(C++)
- C/C++ 强制让进程执行自己的 ShellCode
- C/C++ Qt Tree与Tab组件实现分页菜单
- C++多态
- C++著名程序库的比较和学习经验详解编程语言
- C++ normal_distribution高斯正态分布函数用法详解
- C++ gslice类用法详解
- C++静态成员函数(无师自通)
- 从汇编看c++中引用与指针的使用分析
- 解析C/C++中如何终止线程的运行
- 关于C++中的友元函数的一些总结
- C++类静态成员与类静态成员函数详解
- c++几种基本的插入排序(图文)
- C++的静态联编和动态联编详解
- C++实现DES加密算法实例解析
- C++中关于[]静态数组和new分配的动态数组的区别分析