PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?
C++有什么编程范式?
- 过程式(使用STL的类C语言编程)
- ADT式(自定义抽象数据类型,继承;但是不用new,不用virtual;拷贝构造;为了防止资源泄漏,也发明了RAII的方式进行资源的初始化和释放)
- 面向对象式(使用new,使用virtual,需要指针或引用;实现多态。)
- 泛型编程(《Modern C++ Design》各种奇淫技巧,业务层代码比较少遇到)
C++编译器是怎样实现的?
C++开始有一个叫做cfront的编译器,即把C++语言先翻译成C语言。
然后再用C编译器来编译,C的编译器并不知道此段代码是来自C++还是C。
C++语言特性分别是怎样实现?简单说。
- 成员变量:和C语言的struct 类似,最后也会被直接替换成地址,便于高效访问。
- 成员函数:使用特殊函数名编码方案,翻译成C函数,并添加this指针作参数。(如___clsA12345func001(…,clsA *this))
- 类型继承体系:通过C++编译时的Meta-Data来实现。即在编译时,编译器是知道类型信息与继承体系的,但是编译成C语言后就丧失了此类型信息。
- 虚函数、虚继承:为了支持多态,这也是“面向对象”最重要的特性,使用了虚函数表和虚基类表。注意,运行时多态是通过运行时查表实现的。稍后详细说。
- 模板:通过代码复制的方式实现。每次编译都需要重新编译,不能编成库文件直接使用。
推荐观看:笨办法学Python!编程小白的第一本Python入门书!
注意!
点击此群,一起交流学习
群号:Python编程资源裙
610380249
申请即送:Python软件安装包,Python源码,Python100道经典练习题。