1.1 C++简介

  C++融合3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的广泛编程。

1.2 C++简史

1.2.1 C语言

  Ritchie希望有一种语言能将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合在一起,于是他在旧语言的基础上开发了C语言。

  C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的面向过程的计算机编程语言。

1.2.2 C语言编程原理

  一般来说,计算机语言处理两个概念——数据和算法。数据是程序使用和处理信息,而算法是程序使用的方法。从概念上说,过程化编程首先要确定计算机应采取的操作,然后使用编程语言来实现这些操作。程序命令计算机按一系列流程生成特定的结果,就像菜谱制定了厨师做蛋糕时应遵循一系列步骤一样。

  随着程序规模的扩大,早期的程序语言(FORTRAN和BASIC)都会遇到组织方面的困难。例如,程序经常使用分支,根据某种测试结果,执行一组或另一组指令。很多旧式程序的执行路径很混乱,几乎不能通过阅读程序来解释它,修改这种程序更是一种灾难。为了解决这种问题,一种更有秩序的编程方法——结构化编程。另一种新原则是自顶向下的设计。

1.2.3 面向对象编程

  虽然结构化编程的理念提高了程序的清晰度、可靠性,并使之便于维护,但它在编写大型程序是,仍面临着挑战。为了应付这一种挑战,OOP提供了一种新方法。与强调算法的过程性编程不同的是,OOP强调的是数据。

  在C++中,是一种规范,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。

  OOP编程并不仅仅是将数据和方法并为类定义,还有助于创建可用代码,这将减少工作量。

  信息隐藏可以保护数据,使其免遭不适当的访问。多态能让您为操作符和函数创建多个定义,通过编程上下文来确定使用哪种定义。继承让您能够使用旧类派生出的新类。

  设计有用、可靠的类是一项艰巨的任务,幸运的是,OOP语言使程序员在编程钟能够轻松使用已有的类。厂商提供了大量的有用的类库,包括设计用于简化Windows或Macintosh环境下变成的类库。C++正真的优点之一是:可以方便的重用和求该现有的经过仔细测试的代码。

1.2.4 C++和通用编程

  通用编程是C++支持的另一种编程模式。

  OOP强调的是编程的数据方面,通用编程强调的是算法方面。

  OOP是一个管理大型工程的工具,通用编程提供了执行常见任务的工具。

1.2.5 C++的起源

  C++和C一样,都是在贝尔实验室诞生的。它的主要功能是方便编写出好程序,让每个程序员更加快乐

1.3 可移植性和标准

  在不修改代码的情况下,重新编译后,在不同的平台上程序将运行良好——可移植性。

  可移植性障碍:硬件、语言差异

  标准是不断发展的。

1.4 程序创建的技巧

  1.使用文本编辑器编写代码,并将其保存到文件汇总,这个文件就是程序的源代码。

  2.编译源代码。翻译为主机使用的内部语言,机器语言。

  3.将目标代码与其他代码链接起来。

1.4.1 创建源代码文件

  有些C++实现其功了集成开发环境,让您能够在主程序钟管理程序开发的所有步骤,包括编辑。

  有些实现只能处理编译和链接阶段,要求在系统命令行上输入命令。

  C++源程序后缀必须使用正确(文件名.cpp)

  使用什么扩展名去决定于C++的实现。

C++实现

源代码的扩展名

C++的实现

源代码的扩展名

UNIX

C、cc、cxx、c

Watcom

cpp

GUN C++

C、cc、cxx、cpp、c++

Microsoft Visual C++

Cpp、cxx、cc

Digital Mars

cpp、cxx

Metrowerks CodeWarrior

cp、cpp、cc、cxx、c++

Borland C++

Cpp

1.4.2 编译和链接

  最初,Stroustrup 实现C++时,使用了一个C++到C的编译器程序,而不是开发直接的C++到目标代码编译器,随着C++的日渐普及,越来越多实现转向创建C++编译器,直接将C++源代码生成目标代码。

  ①UNIX编译和链接

  ②Linux编译和链接

  ③Windows命令行编译器

  ④Windows编译器

  ⑤Macintosh上的C++

1.5 总结

  C语言新增了诸如控制结构和函数等特性,一遍更好地控制程序流程,支持结构化和模块化程度更高的方法。

  C++增加了对面向对象编程和泛型编程的支持,这有助于提高模块化和创建可重用代码,从而节省编程时间并提高了程序的可靠性。

C++学习笔记-预备知识的更多相关文章

  1. C学习笔记-预备知识

    计算机结构组成 CPU(中央处理器)(控制器+运算器) 存储器(内存+外存) 输出设备 输入设备 计算机系统组成 硬件系统 主机 中央处理器 运算器 控制器 内存储器 只读存储器 随机存储器 外部设备 ...

  2. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  3. SQL 数据库 学习 004 预备知识

    数据库 预备知识 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识. 预备 ...

  4. Python 2.7 学习笔记 基本知识

    python是一种解释型的.面向对象的.带有动态语义的高级程序设计语言.本文介绍下python的基本知识. 一.安装 各种操作系统有自己的安装方法,linux系统一般都自带了python的环境.这里不 ...

  5. Unity3D学习笔记——初级知识

    一:Unity欢迎窗口对于初学者来说有很多有价值的信息,值得用户关注,以下将简要介绍这个窗口中的相关内容: 1.Video Tutorials: 提供unity相关的教程 ,包括用户手册 .组件手册以 ...

  6. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  7. JavaScript学习笔记——基本知识

    JavaScript学习的教程来自后盾网 1>JavaScript的放置和注释 1.输出工具 A.alert(); B.document.write(); C.prompt("&quo ...

  8. SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数

    Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下:   ...

  9. java虚拟机JVM学习笔记-基础知识

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--java虚拟机 媒介:JVM是每一位从事Java开发工程师必须翻越的一座大山! JVM(Java Virtual Machine)JRE ...

随机推荐

  1. 微服务SpringCloud之配置中心和消息总线

    在微服务SpringCloud之Spring Cloud Config配置中心SVN博客中每个client刷新配置信息时需要post请求/actuator/refresh,但客户端越来越多时,,需要每 ...

  2. mysql之innodb日志管理

    本文从两个方面进行阐述,常规的日志文件(不区分存储引擎),第二就是讲innodb存储引擎的事务日志. 一.基本日志文件 1.1.基本日志文件分类:错误日志(error log)慢查询日志日志(slow ...

  3. 相同类中方法间调用时日志Aop失效处理

    本篇分享的内容是在相同类中方法间调用时Aop失效处理方案,该问题我看有很多文章描述了,不过大多是从事务角度分享的,本篇打算从日志aop方面分享(当然都是aop,失效和处理方案都是一样),以下都是基于s ...

  4. 使用FreePBX和第三方线路对接

    首先搭建好相关环境 在FreePBX的web-gui控制界面进行操作. 通信接口连接--->中继  先创建一条中继线路: 创建中继 设置这条线路 优先级为0 中继名: 设置一个名字 Outgoi ...

  5. Empire – PowerShell 后渗透攻击框架

    0x01 简介 Empire是一个后开发框架.它是一个纯粹的PowerShell代理,具有加密安全通信和灵活架构的附加功能.Empire具有在不需要PowerShell.exe的情况下执行PowerS ...

  6. java读写文件IO

    package Common.readFile; import Common.tool.User; import com.fasterxml.jackson.databind.ObjectMapper ...

  7. Maven依赖配置和依赖范围

    Maven依赖配置 一个dependency的声明可以包含以下元素: <dependencies> <dependency> <groupId>org.apache ...

  8. Thinkphp6框架学习:有关数据库的基本操作

    最近Thinkphp6框架出来了,Mysql 8.0也出来了,php版本也升级到了7.4(这里php使用的是php7.3) 为了赶上时代的潮流,连ide(phpstorm)也升级到了2019.2的版本 ...

  9. java生成二维码/java解析二维码

    二维码的优缺点 优点:1. 高密度编码,信息容量大:2.编码范围广:3.容错能力强:4.译码可靠性高:5.可引入加密措施:6.成本低,易制作,持久耐用. 缺点:1.二维码技术成为手机病毒.钓鱼网站传播 ...

  10. SqlServer 2014 还原数据库时提示:操作系统返回了错误5,,拒绝访问

    场景 在进行数据库还原时提示: System.Data.SqlError:在对”“尝试”“时,操作系统返回了错误5(拒绝访问) 实现 第一种方案是修改要还原的数据库备份文件的权限. 找到备份文件右击属 ...