C++历史简介

1、Java和C#语言都是从C++继承而来的。简而言之,要成为专业的编程人员就意味着要深刻理解C++。它是现代编程的基础。

C:现代编程时代的开始

1、C语言的发展经历了20世纪60年代的结构化编程的革命。在此之前,大型程序是难以书写的,因为程序的逻辑趋向于退化成“意大利面条式的代码”,充斥着难以理解的,混乱的跳转,函数调用和返回。

2、结构化编程通过增加很好的控制语句,带有局部变量的子程序和其他的一些改进解决了这个问题。结构化编程使得编写巨大的程序成为了可能。C却是第一个功能强大,富裕表达,能书写出优美代码结构化的语言。C语言很快就在20世纪80年代变成了最为广泛的结构化语言。

我们需要 C++

1、尽管 C 是世界上最受欢迎的与业编程语言之一,也有复杂的程序是 C不能完成的。一旦一个程序的规模达到了一定的大小,其复杂度就会增加,以至亍很难仍整体上对其进行把握。C++的目的就是突破返种障碍,帮助编程人员理解并管理更大,更复杂的程序。

C++的诞生

1、从本质上来讲,C++就是支持面向对象的 C。C++在提供了面向对象的编程优点同时,还保留了 C 的灵活。

2、实际上,C++的面向对象特怅可以被有效地引用到实际上任何程序中。C++可以广泛地被用来开发诸如编辑器,数据库,个人文件系统,网络工具,通信程序等,这些都非常常见。由亍 C++保留了 C 的高效性,大量的高性能系统软件都是用 C++开发的。同样,C++也经常被用来开发 windows 程序。

C++与 Java 和 C#的关系

1、C++是 Java 和 C#之父。尽管 Java 和 C#都是在 C++的基础上对语言的特性进行了一些增加,删除和改动,但是总体上来说它们三者的语法是几乎相同的。进一步来说,C++所采用的对象模型和 Java,C#的都是相似的。最后,三者给人的总体感觉也是非常相近的。这就意味着,一旦学会了C++,就能很轻易地学习 Java 和 C#。反乀亦然。

2、C++是针对指定类型的CPU 和操作系统而设计的高性能的语言。例如:如果你想写在 windows 操作系统下,因特尔奔腾系列的CPU 上运行的程序,那举 C++是最好的选择。

Java 和 C#都实现了跨平台和可秱植的编程,C++为什么不能了?

1、Java 和 C#之所以能实现跨平台,可移植的编程,而 C++不能是因为它们的编译器生成的目标代码不同。就 C++而言,编译器的输出是机器代码,这是 CPU 可以直接执行的。因此它是紧密和指定的 CPU 以及操作系统相关的。如果想让 C++程序在不同的系统上运行,则需要针对该目标系统进行代码的重新编译。如:java(需要java虚拟机),C#(需要CLR),但是这就会引起多余的开销,这也是为什么c++程序比java和C#运行要快的原因。

2、互联网上连接的是许多不同的 CPU 和操作系统。因此跨平台和可移植怅就成了最重要的着眼点。第一个着眼于这个问题的语言就是 Java。

3、因此, Java 程序可以在互联网上自由运行。然而这样做的代价就是牺牲了效率, Java 程序的执行要比 C++程序慢许多。同样的事情也发生在 C#身上。最终分析,如果你想开发高性能软件,就是用 C++。如果你想开发高度可移植的软件,就是用 Java或者 C#。最后一点:请记住,C++,java 和 C#是用来解决不同问题的。这里没有那个语言好,那个语言不好的问题,而是那个语言更适合用来完成我们手头工作的问题。

【C++】第 1 章:C++基础知识的更多相关文章

  1. UNIX环境高级编程--第一章 UNIX基础知识

    第一章 UNIX基础知识 1.2 UNIX体系结构   从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且 ...

  2. 《C#从现象到本质》读书笔记(一)第1章 .NET基础知识

    最近根据博客园大神的推荐,买了本<C#从现象到本质>.做一点读书笔记. 由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了.不知 ...

  3. RxJava2实战--第二章 RxJava基础知识

    第二章 RxJava基础知识 1. Observable 1.1 RxJava的使用三步骤 创建Observable 创建Observer 使用subscribe()进行订阅 Observable.j ...

  4. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  5. Windows核心编程 第六章 线程基础知识 (上)

    第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...

  6. 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识

    1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...

  7. UNIX环境高级编程 第1章 UNIX基础知识

    所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程 ...

  8. HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识

    一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...

  9. iBatis第一章:基础知识概述 & MVC思想

    一.java是一门十分受开发人员欢迎的语言,在开发语言排行榜中名列前茅,人们对其看法不尽相同,就我自身感受而言,我觉得java语言的主要优势体现在如下几方面:1.java属于开源语言,开发人员可以找到 ...

  10. 第一章 UNIX 基础知识

    1.1 Unix体系结构 OS定义为一种软件,它控制计算机硬件资源,提供程序运行环境,一般称其为内核(kernel),它体积小,位于环境中心. 内核的接口为系统调用(system call),共用函数 ...

随机推荐

  1. What's this?(js)

    What's this? 由于运行期绑定的特性,JavaScript 中的 this 含义非常多,它可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式 随着函数使用场合的不同,this的 ...

  2. easyui源码翻译1.32--Tree(树)

    前言 使用$.fn.tree.defaults重写默认值对象.下载该插件翻译源码 树控件在web页面中一个将分层数据以树形结构进行显示.它提供用户展开.折叠.拖拽.编辑和异步加载等功能. 源码 /** ...

  3. SQLite入门与分析(八)---存储模型(1)

    写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树 ...

  4. ANDROID_MARS学习笔记_S02_004_ExpandableListActivity

    1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...

  5. 这些小众软件让你的效率提升N倍!(必备,收藏)

    大部分的我们,电脑买来之后,软件越装越多,电脑越来越卡,导致工作的效率也是越来越低. 同时还可能长期处于软件安装完又卸载的无限恶性循环中.提高工作效率是我们利用电脑办公的一大优势,安装好的软件更是可以 ...

  6. Android 图片从网页中获取并动态加载到listview中

    实现功能: 效果图: 代码:这里

  7. values of type NSInteger should not be used as format arguments; 关于Xcode中烦人的32位与64位警告处理方法.

    http://stackoverflow.com/questions/16075559/why-does-an-nsinteger-variable-have-to-be-casted-to-long ...

  8. 使用Apache 的lib进行List、Set、数组之间的转换(转)

    使用Apache Jakarta Commons Collections: import org.apache.commons.collections.CollectionUtils; String[ ...

  9. c pvr转存pvr.ccz格式

    pvr.ccz 是把pvr用zlib算法压缩后的图像格式,其优点是可以提升文件读取效率. 大多数情况下我们可以用一些工具来将pvr压缩到pvr.ccz ,下面提供一个c++方法来完成这个过程 int ...

  10. OpenGL三维镂垫

    2015-12-12帮舍友尝试这个代码的时候发现舍友的会出现No GLSL support 后来发现舍友的版本2.0.2.1才能用 舍友的是glutInitContextVersion(3, 1);改 ...