C++静态关联与动态关联
来源:互联网 发布:淘宝拍下是什么意思 编辑:程序博客网 时间:2024/05/18 00:18
1.1确认具体对象的过程叫关联(binding),在这里指把一个函数与类对象捆绑在一起,建立关联。
1.2什么是静态关联?
函数重载和通过对象名调用的虚函数,在编译时即可确定其调用的虚函数属于哪一个类,其过程称为静态关联,由于是在运行前关联的,所以又叫早期关联。
1.3什么是动态关联?
在运行时,基类指针变量指向了某个类对象,然后通过这个基类指针去调用虚函数。由于是在运行时把虚函数与对象“绑定”在一起, 因此,此过程称为动态关联。由于动态关联是在编译后运行阶段进行的,所以又称为滞后关联。
1.4使用虚函数时的注意点:
A.只能用virtual声明类的成员函数,使他成为虚函数,而不能将类外的普通函数声明为虚函数。
B.一个成员函数在被声明为虚函数后,在同一类族中的类就不能定义一个非virtual的但是与该虚函数具有相同参数和返回值类型的函数。
1.5怎么判断是否把一个成员函数声明为虚函数?
A.首先看成员函数所在的类是否会成为基类。然后看成员函数在类的继承后有无可能被改进功能,如果希望改变其功能的,一般把它声明为虚函数。
B.如果成员函数在类被继承后不被修改,或派生类用不到该函数,则不要把它声明为虚函数。
C.应该考虑对成员函数的调用是通过对象名还是通过基类指针或引用来访问,如果通过基类指针或引用来访问的,应该考虑用虚函数。
D.有时,在定义虚函数时,不定义其函数体,即函数体是空的。
1.6使用虚函数,系统有一定的开销,但一个类有虚函数时,编译系统会为该类创建一个虚函数表,它是一个指针数组,存放每个虚函数的入口地址。
1 0
- C++中的静态关联与动态关联
- C++静态关联与动态关联
- C++虚函数、静态关联和动态关联
- c++ 纯虚函数+动态、静态关联
- 动态加载HorizontalSrcollView与ViewPager关联使用
- JS 索引数组、关联数组和静态数组、动态数组
- 索引数组、关联数组和静态数组、动态数组
- 索引数组、关联数组和静态数组、动态数组
- androidStudio关联静态库(.a)/动态库(.so)源码调试
- 【面向对象程序设计常见面试题】什么叫静态关联,什么叫动态关联
- 手动关联与自动关联
- 关联
- 关联
- 关联
- 关联
- 关联
- 关联
- 动态关联表
- 编程题#10:输出指定结果二(C++程序设计第10周)
- Android 消息机制,Looper、Handler、Message 解析
- Qt调用Ui文件
- 数据分析-可视化挖掘读书笔记
- Java基础11 对象引用
- C++静态关联与动态关联
- 第一届_第二题_兑换硬币
- Java基础12 类型转换与多态
- Jquery前端封装--DOM的向下兼容和浏览器的检测
- 数据分析-回归分析读书笔记
- 面向对象之继承和组合浅谈
- Android开发之如何保证Service不被杀掉(broadcast+system/app)
- Java进阶01 String类
- 翻写Nehe的OpenGL教程之准备篇(Xcode+C开发)