【C++】第 1 章:C++基础知识
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++基础知识的更多相关文章
- UNIX环境高级编程--第一章 UNIX基础知识
第一章 UNIX基础知识 1.2 UNIX体系结构 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且 ...
- 《C#从现象到本质》读书笔记(一)第1章 .NET基础知识
最近根据博客园大神的推荐,买了本<C#从现象到本质>.做一点读书笔记. 由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了.不知 ...
- RxJava2实战--第二章 RxJava基础知识
第二章 RxJava基础知识 1. Observable 1.1 RxJava的使用三步骤 创建Observable 创建Observer 使用subscribe()进行订阅 Observable.j ...
- (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识
开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...
- Windows核心编程 第六章 线程基础知识 (上)
第6章 线程的基础知识 理解线程是非常关键的,因为每个进程至少需要一个线程.本章将更加详细地介绍线程的知识.尤其是要讲述进程与线程之间存在多大的差别,它们各自具有什么作用.还要介绍系统如何使用线程内核 ...
- 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识
1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...
- UNIX环境高级编程 第1章 UNIX基础知识
所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程 ...
- HTML5 Canvas核心技术图形动画与游戏开发(读书笔记)----第一章,基础知识
一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas ...
- iBatis第一章:基础知识概述 & MVC思想
一.java是一门十分受开发人员欢迎的语言,在开发语言排行榜中名列前茅,人们对其看法不尽相同,就我自身感受而言,我觉得java语言的主要优势体现在如下几方面:1.java属于开源语言,开发人员可以找到 ...
- 第一章 UNIX 基础知识
1.1 Unix体系结构 OS定义为一种软件,它控制计算机硬件资源,提供程序运行环境,一般称其为内核(kernel),它体积小,位于环境中心. 内核的接口为系统调用(system call),共用函数 ...
随机推荐
- 第七章Bulk设备
小川工作室编写,本书为LM3S的USB芯片编写,上传的均为草稿,还有没修改,可能还有很多地方不足,希望各位网友原谅! QQ:2609828265 TEL:15882446438 E-mail:paul ...
- Oracle 常用符号CHR
select chr(92)||chr(102) from dual; \f select chr(92)||chr(110) from dual; \n select chr(92)||chr ...
- Android开发UI之Navigation Drawer
http://blog.csdn.net/xyz_lmn/article/details/12523895
- HTML5标签一览
HTML5标签一览,点击下载 访问密码:1907
- U制作LFS linux
我希望自己的LFS运行在U盘上,远期目标是要制作一个基于LFS的编程练习U盘,方便自己的编程练习.今天算是工作的第一步,先把LFS做到U盘上. 把Linux做到U盘上通常的做法是采用两步启动法:先生成 ...
- 巧架个人BT服务器
BT的流行比之当年的江湖,传奇等的流行有过之而无不及.现在我们常说的话题是:“今天你BT了吗?”哇K!兄弟们你们怎么吐了?!假如你还不知道BT是什么,那似乎证明你已经到了归隐Internet的时候了, ...
- 【C++】计算所有小于N的勾股数组合,可以写入txt文件保存,每组占一行。
#ifndef PYTHAGOREAN_H_ #define PYTHAGOREAN_H_ #include <iostream> class Pythagorean { public: ...
- servlet读取cookie问题
String sessionid = request.getSession().getId(); // 取得当前的session id ckSessionid = new Cookie("s ...
- C#格式化数值结果表
C#格式化数值结果表 字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0 ...
- Android3.0中ActionBar的新特性
1. ActionBar(活动栏)替代了显示在屏幕顶端的标题栏.主要负责显示菜单,widget,导航等功能,主要包括:@ 显示选项菜单中的菜单项到活动栏:@ 添加可交互的视图到活动栏作为活动视图: ...