【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),共用函数 ...
随机推荐
- 【NOIP TG 解方程】
存代码: #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> ...
- Android ListView(Selector 颜色)
listview_color.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- Java集合类之LinkedList链表
package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...
- html5 鼠标跟随运动
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 结构体typedef struct dtuple_struct dtuple_t;
/** Structure for an SQL data tuple of fields (logical record) */ struct dtuple_struct { ulint info_ ...
- NOI2008 志愿者招募
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1859 Solved: 1169[Submit][Stat ...
- c程序设计语言_习题1-18_删除输入流中每一行末尾的空格和制表符,并删除完全是空格的行
Write a program to remove all trailing blanks and tabs from each line of input, and to delete entire ...
- Nginx与X-Sendfile
X-accel模块允许由后台通过返回的头来决定投递静态文件.为什么要这么做呢?试想一下我们经常碰到的这种情况,在有的论坛中,下载资源需要登录认证.权限核查.积分扣除或者是积分增加等等,对于Nginx来 ...
- [NOIP2011]瑞士轮
noip2011普及组第3题. 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平 ...
- 【原】1.1RDD源码解读(二)
(6)transformation 操作,通过外在的不同RDD表现形式来达到内部数据的处理过程.这类操作并不会触发作业的执行,也常被称为lazy操作. 大部分操作会生成并返回一个新的RDD,例sort ...