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. js构造函数

    使用函数做自动化 function createObj(nick, age){ var obj = { nick: nick, age: age, printName: function(){ con ...

  2. [topcoder]IncrementAndDoubling

    http://community.topcoder.com/stat?c=problem_statement&pm=12790&rd=15708 这道题只有两个操作,一是加一,二是数组 ...

  3. wcf iis host 打开exe失败 不能显示界面

    最近谷歌没法用了,我的freegate经常性的崩溃 无奈之下,用了必应,貌似也不错 http://stackoverflow.com/questions/8414514/iis7-does-not-s ...

  4. MySQL for Excel用法

    MySQL有一款工具“MySQL for Excel”它可以提供将Excel的数据导入MySQL,或者将MySQL的数据导出到Excel的功能.简而言之,使用MySQL for Excel可以通过Ex ...

  5. NTP 服务器配置

    1.yum安装ntp 1 yum install ntp* 2.更新时间 1 ntpdate 202.120.2.101 3.加入任务计划 1 2 crontab -e */10 * * * * nt ...

  6. bzoj2738

    感人肺腑pascal过不去系列,跪求开O2先不说这个了,学完cdq分治之后又顺手学了一下整体二分感觉这两个东西很多相似的地方,干脆都叫cdq分治好了二分解决k小就是设当前二分的答案为m,把x<= ...

  7. bzoj2298

    不难发现必然是两个人之间话产生矛盾或自身话有问题很显然,当ai>aj时,若ai<n-bj时i,j两人话矛盾ai<ai<n-bj,这东西有没有数轴上的线段的既视感?我们只要求出做 ...

  8. A标签执行JS脚本

    A标签执行JS脚本 分类: Web2012-12-25 22:48 1368人阅读 评论(0) 收藏 举报 前言 A标签是html中常用的标签,它与button按钮是实现页面跳转的两种最常用的方式,经 ...

  9. POJ 2502 Subway dij

    这个题的输入输出注意一下就好 #include<cstdio> #include<cstring> #include<queue> #include<cstd ...

  10. CodeForces 287B Pipeline

    思路:二分答案,时间复杂度O(nlgn). 若个数为x,那么算出这种情况下提供的水管的最大值和最小值与n比较即可,注意x个分离器需要减去x-1个水管. #include<cstdio> # ...