C++学习前理论

C++概述:

  C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

  C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

  C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

  C++ 是由 Bjarne Stroustrup 于 1979年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++,在 C++中,库的地位是非常高的, Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛。

  C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序

  C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

    1、封装   2、数据隐藏    3、继承     4、多态

  标准的 C++ 由三个重要部分组成:

    核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。

    C++ 标准库,提供了大量的函数,用于操作文件、字符串等。

    标准模板库(STL),提供了大量的方法,用于操作数据结构等。

C++发展史:

  世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言,之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。 

  20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。  

  1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。 
  在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。 
  委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builde

各种语言对比:

  java 的优点是非常适合用于开发大型企业级项目,移动嵌入式程序例如手机游戏,但是要学的技术很多且在底层开发中不占优势

  c语言是经久不衰的语言,主要应用在嵌入式编程,硬件驱动程序设计,可以做底层开发,但是在企业级别中的开发中不占优势

  C++主要开发工具是微软的VisualC++和Borload的BCB(BorloadC++ Builder),优点在于含有大量的库,如MFC,GUI等,可直接调用windows库函数干很多事情,主要领域一是做桌面程序,像QQ,迅雷这种桌面软件,领域二是做游戏后台开发,大部分游戏(包括魔兽等)后台语言就是使用C++,但是语言过度复杂和标准库过度苍白。C++语言过于复杂,并且C++语言已经无法简化,如果编译器能够提供可定制编译也许对这个语言会有帮助。

C++应用领域:

        1. 服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux操作系统

    2. 游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,比如计算机图形、多媒体处理。  

    3. 虚拟现实:这个领域一直在发展,目前VR眼镜比较火,需要大量基于这些的C++开发。  

         4. 数字图像处理:比如像AutoCAD的系统开发,像OpenCV的视觉识别等等。  

         5.科学计算 在科学计算领域,FORTRAN是使用最多的语言之一。但是近年来,C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。  

    6.网络软件 C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。比如GOOGLE的chrome浏览器,就是使用C++开发。  

     7.分布式应用。  

     8.操作系统 在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域崭露头角。  

      9.设备驱动程序 也是因为效率的原因。  

           10.移动(手持)设备。

      

原文地址:https://www.cnblogs.com/hjt1806/p/9439369.html