C++知识总结

1)       C++编译与执行的四阶段

a)预处理:根据文件中的预处理指令来修改源文件的内容, 产生.ii文件

b)编译:编译成汇编代码,产生汇编文件(.s文件)

c)汇编:把汇编代码翻译成目标机器指令,产生目标文件(.o或.obj文件)

d)链接:链接目标代码生成可执行程序,产生可执行文件(.out或.exe文件)

2)       extern “C”

为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。

 

注:

禁止在extern "C"中包含头文件,有可能会导致 extern "C" 嵌套,部分编译器对 extern "C" 嵌套层次有限制,嵌套层次太多会编译错误。

在C,C++混合编程的情况下,在extern "C"中包含头文件,可能会导致被包含头文件的原有意图遭到破坏,比如链接规范被不正确地更改。

 

3)       C++静态和动态绑定

a)对象的静态类型和动态类型

静态类型:对象在声明时采用的类型,在编译时确定

动态类型:当前对象所指的类型,在运行期决定,对象的动态类型可变,静态类型无法更改

b)静态绑定和动态绑定

静态绑定:绑定的是对象的静态类型,函数依赖于对象的静态类型,在编译期确定

动态绑定:绑定的是对象的动态类型,函数依赖于对象的动态类型,在运行期确定

 

虚函数使用动态绑定,其他的静态绑定

posted on 2022-04-02 17:48  蜀山菜鸟  阅读(85)  评论(0)    收藏  举报