C++学习笔记1 入门

开发方式
  在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

原文地址:https://www.cnblogs.com/nami/p/2683604.html