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