开发方式
在unix世界有大量的程序员是传统的非IDE的方式进行软件开发。一般是如下组合:
1.编译器:gcc,clang等
2.编辑器:一般是vim/emacs
3.make:gnu make 或者bsd 的pmake等,功能与用法基本一样
4.版本管理:cvs,svn,git等
5.代码阅读:cscope,ctags,lxr等
集成开发环境(IDE)
1.Visual Studio(Visual C++)
2.Borland C++ Builder
3.Eclipse(Myln + CDT + MinGW32 + GCC)
4.Dev-C++(MinGW32 + GCC)
5.Code::Blocks(可配合多款编译内核使用)
6.CodeLite
7.C-Free
8.Qt Creator等基于Qt开发框架的IDE
如上所示,目前流行的 GNU GCC 和 Microsoft Visual Studio 以及 Borland C++ Builder 系列各执一套基本的编译链,其它的IDE都是衍生产品。
源代码的扩展名
C++实现 | 源代码扩展名 |
UNIX | C、cc、cxx、c |
GNU C++ | C、cc、cxx、cpp、c++ |
Borland C++ | Cpp |
Visual Studio(Visual C++) | cpp、cxx、cc |
头文件命名约定
头文件类型 | 约定 | 范例 | 说明 |
C++旧式风格 | 以.h结尾 | iostream.h | C++程序可以使用 |
C旧式风格 | 以.h结尾 | math.h | C、C++程序可以使用 |
C++新式风格 | 没有扩展名 | iostream | C++程序可以使用,使用namespace std |
转换后的C | 加上前缀c,没有扩展名 | cmath | C++程序可以使用,可以使用不是C的特性,例如namespace std |
由于C使用不同的文件扩展名来表示不同的文件类型,因此用一些特殊的扩展名(如.hx或.hxx)表示C++头文件是有道理的,ANSI/ISO委员会也这样认为。问题在于研究使用那种扩展名,因此最终他们一致同意不使用任何扩展名。
头文件有没有后缀的区别,以iostream和iostream.h为例,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。 后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。 因 此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
根据Effective C++第三版第一条款的描述,现在C++由以下四个“子语言”组成:
1、C子语言。C++支持C语言的几乎全部功能,主要是c89的部分,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C++标准文献)。
2、面向对象的C++语言。C++语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C++语言也开发出了 支持面向对象功能的版本。
3、泛型编程语言。C++强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。
4、STL(C++标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C++程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。
参考文献:http://baike.baidu.com/view/824.htm