c++概括
c++到底是什么样的语言
在过去的几十年,计算机技术的发展令人吃惊,当前的笔记本电脑的计算速度和存储信息的能力超过了20世纪60年代的大型机。20世纪七十年代,C和Pascal语言引领人们进入结构化编程时代。20世纪80年代,人们见证了一种新编程模式的成长:面向对象编程(OOP)。
20世纪七十年代,贝尔实验室致力于开发UNIX操作系统;操作系统是能够管理计算机资源,处理计算机与用户交互的一组程序,为完成这项工作,需要一种简洁,能够生成简洁且快速的程序,并能有效控制硬件的语言。
传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机内部的机器语言。然而,汇编语言是低级语言,它直接操控硬件,直接访问CPU寄存器和内存单元。因此汇编语言针对特定的处理器,要将汇编程序移植到另一种计算机必须实现对它的重写。高级语言致力于解决问题,而不注重硬件。于是他们在旧语言的基础上开发了C语言。
C++在C的基础上移植了新的概念。一般来说,计算机程序要处理两个概念——数据和算法。数据是程序使用和处理的东西,而算法是程序使用的方法。
过程性语言
C语言在最初面世时是过程性语言,这意味着它强调的是算法的方面。从概念上讲过程化编程首先确定计算机应采取的操作,然后使用编程语言实现这些操作。
相比于汇编语言,过程化语言毫无疑问是相对清晰的,易修改的,但是,弊端随着程序规模的扩大而显现,很多旧式程序的执行路径很混乱,各种分支语句使得它看起来像混乱的意大利面条,修改这种程序简直是一场灾难。为了解决这种问题,计算机科学家开发了一种更为有序的编程方法——结构化编程。
结构化编程
C语言具有使用这种方法的特性,例如,结构化分支限制为一小组行为良好的结构(for循环,while循环,do while循环和if else语句),另一个原则是自顶向下的设计。在C语言中,其理念是将大型程序分解成小型程序,以便于管理任务;如果小型任务过大,则进一步分解。这一过程将程序划分为小型的,易于编写的模块。它鼓励程序员开发程序单元(函数)来表示各个任务模块。结构化编程技术反映了过程性编程的思想,根据执行的操作来构思一个程序。
面向对象编程
虽然结构化编程的理念提高了程序的清晰度,可靠性,并且非常易于维护。但是,在编写大型项目时,仍然面临着挑战。为了解决这个问题,OOP提供了一个新的编程方法,与过程式注重算法的实现不同的是,面向过程编程强调的是数据,其理念是设计与问题相关的数据格式。在c++中,类是一种范式,它描述了这种新型数据格式,对象是根据这种规范结构的特性数据结构。通常,类规定了可使用哪些数据来表示对象以及可以对这些数据执行哪些操作。OOP程序设计方法首先设计类,它们准确的表示了程序要处理的东西。例如,如果我们设计一个公司人员管理系统,那么要定义人员的职称,人员的工号,人员的工资等,然后类定义描述了对类的可执行操作。从低级组织(类)到高级组织(程序)的处理过程叫自下向上的编程。
OOP编程并不是仅仅将数据和方法合并成类定义。例如OOP还有助于创建可重用的代码,这将减少大量的工作。C++真正的优点之一是:可以方便的重用和修改现有的,经过仔细测试的代码。
C++与泛型编程
它与OOP的目标相同,即使重用代码和抽象通用概念更加简单。泛型编程提供了执行常见任务的工具。术语泛型指的是独立于类型的代码。
总结:c++创始人Bjarne Stroustrup在谈到c++时曾说:“c++是为了我和我的朋友不必再使用汇编语言,C语言和其他高级语言而设计的,它的主要功能是可以更加方便的编写出程序,让编程序的人快乐!”我想,这就是c++的魅力吧。让程序员快乐!
c++概括的更多相关文章
- Hadoop概括——学习笔记<一>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第一章的笔记 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据 ...
- mysql、mysqli、PDO一句话概括比较
mysql.mysqli.PDO一句话概括比较 1 mysql扩展 (注:原始的,较差) 2 mysqli扩展(面向过程式) (注:比上面多了更多功能) 3 mysqli扩展(面向对象式) (注:比上 ...
- Scalaz(3)- 基础篇:函数概括化-Generalizing Functions
Scalaz是个通用的函数式编程组件库.它提供的类型.函数组件都必须具有高度的概括性才能同时支持不同数据类型的操作.可以说,scalaz提供了一整套所有编程人员都需要的具有高度概括性的通用函数,它是通 ...
- 字符输出流Writer简要概括
偷个懒,直接参考上篇字符输入流Reader的形式,其实Reader和Writer本来就大同小异: 字符输出流Writer 本篇将对JAVA I/O流中的字符输出流Writer做个简单的概括: 总得来说 ...
- 字符输入流Reader简要概括
字符输入流Reader组成结构 本篇将对JAVA I/O流中的字符输入流Reader做个简单的概括: 总得来说,每个字符输入流类都有一个对应的用途,如下: 字符流基类:Reader 字节流转字符流:I ...
- Hadoop概括——学习笔记<一>转
前言 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据库管理人员,也能狗大致了解其特点 首先是概括图(以hadoop2.0为例) 一.Hadoop基础 ...
- mapreduce精简概括--转
mapreduce精简概括 We want to count all the books in the library. You count up shelf #1, I count up shelf ...
- 一幅图概括Android测试的方方面面
一幅图概括Android测试的方方面面,来自网络: 另外的一些测试技巧 1,测试应用程序时,环境是很大的一个影响因素:系统时间,网络情况,异常关闭等 2,测试应用程序时,第三方嵌入程序也是有影响的.如 ...
- iOS开发——适配篇&App适配简单概括
App适配简单概括 1:适配:适应.兼容各种不同的情况 系统适配 针对不同版本的操作系统进行适配 屏幕适配 针对不同大小的屏幕尺寸进行适配 在用户眼中 屏幕是由无数个像素组成的 像素越多,屏幕越清晰 ...
- css学习--inline-block详解及dispaly:inline inline-block block 三者区别精要概括
*知识储备: 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行. 块级元素:是可以控制宽和高.margin等,并且会换行. 1.inline-block 详解 (1)一句话就是在 ...
随机推荐
- nodeName,nodeValue,nodeType,typeof 的区别
nodeName 属性含有某个节点的名称. 元素节点的 nodeName 是标签名称 属性节点的 nodeName 是属性名称 文本节点的 nodeName 永远是 #text 文档节 ...
- 关于ajax post请求,参数过大产生的问题解决 Java
之前做了一个图片上传的功能,前端是把图片编码成BASE64,但是图片一大了,后台用request.getParameter("前端参数");来接收参数打印不出来,没有值,这就很尴尬 ...
- Cocos2d-x性能分析-Android版本之Gprof
在 iOS 平台下我们可以用 Xcode 自带的 Profile 工具来测试我们程序的性能,Android 平台使用的 gprof 这里整理了一下具体的cocos2dx 使用gprof进行性能分析的具 ...
- python3和python2的区别部分
字典没有iteritems(),只有items() py2items()返回的是列表,iteritems()返回的是迭代器 py3items()返回的是迭代器
- POJ 3294 出现在至少K个字符串中的子串
在掌握POJ 2774(两个串求最长公共子串)以及对Height数组分组后,本题还是容易想出思路的. 首先用字符集外的不同字符连接所有串,这是为了防止两个后缀在比较时超过某个字符串的分界.二分子串的长 ...
- C语言精要总结-内存地址对齐与struct大小判断篇
在笔试时,经常会遇到结构体大小的问题,实际就是在考内存地址对齐.在实际开发中,如果一个结构体会在内存中高频地分配创建,那么掌握内存地址对齐规则,通过简单地自定义对齐方式,或者调整结构体成员的顺序,可以 ...
- js 数字递增特效 仿支付宝我的财富 HTML5
上周五应着公司临时需求,一天的时间解决掉官网(ps:比较简单哈哈),需求里面有一个特效就是数字递增到指定的数值,其实JS写也不复杂的,但是我发现一个js小插件,这个插件轻巧简单,用起来也非常简单实用. ...
- 蓝桥杯-隔行变色-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- Bash 的若干基本问题
Bash 的若干基本问题 这里介绍一些bash启动前.后的问题,以及一些使用bash需要注意的基本问题. 1.Bash的介绍 Bash是一种Shell程序,它是一般的Linux系统中的 ...
- 跨交换机相同vlan内的通信(trunk模式)
当一个公司的小型局域网内部,处于不同楼层的主机处在同一个虚拟局域网内,连接到不同的交换机上,这时候就需要相同虚拟局域网内部的主机进行跨交换机进行通信. 通过设置交换机之间相连接的端口开启trunk模式 ...