栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++PrimerPlus学习——Chapter1.Preparation

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++PrimerPlus学习——Chapter1.Preparation

Chapter1.Preparation准备
  • *Section1 Brief History of C*
    • *1.C语言简史*
    • *2.过程性编程——从“分步”到“结构化”*
    • *3.OPP的出现与语言革新*
    • *4.泛型编程(Generic Programming)*
  • *Section2 Standardization of C++*
    • *1.C++是C的超集?*
    • *2.C++的标准化*
  • *Section3 Create a Program*
    • *1.程序运行的大体过程*
    • *2.源代码的创建中的提醒*

Section1 Brief History of C 1.C语言简史
  • UNIX 操作系统的开发目的就在于跨平台设计,开发者Dennis Ritchie需要一种比移植性差的汇编语言更高级的语言来编写UNIX。通过编译器将这种高级语言翻译为计算机底层语言,从而将效率,访问能力与通用,可移植性结合,这就促使了C语言的诞生。
2.过程性编程——从“分步”到“结构化”
  • 自动化普及的现代社会,人们的思维愈发跳跃,然而,正如开车时有点火,离合,挂挡,放手刹等步骤,不论生活还是编程,步骤都是关键。C语言面世之初是典型的“过程性语言”,强调算法,在程序设计前需要明确操作步骤,按一系列命令执行操作。然而,很多算法往往不是“流水线”工作,例如分支结构,导致程序的混乱。开发者通过“结构化编程”(structured Programming)规范了混乱的程序执行路径,例如循环和分支语句。
  • 此外,此时期的语言与算法都呈现出自顶向下(top-down)的设计,思维习惯如同人类自然解决问题如出一辙。例如机械工程师在CAD上设计新型汽车,会呈现”系统-模块-零件“的思维架构,将复杂的问题分解到细小的可以解决的问题,从而各个击破。在程序语言中,函数(function)的出现体现了top-down的思维。
3.OPP的出现与语言革新
  • 有用可靠的代码的设计很艰难,但由于特定代码往往针对特定问题,导致很多时候工作量很大。OPP(Object-Oriented Programming面向对象编程)与强调算法的过程性编程不同,试图让语言满足问题,更强调数据,设计与问题本质对应的语言数据格式——类。
  • 以C++为例描述汽车。
  • 物理指标类:颜色,里程,品牌,载客数;
  • 汽车属性类:零加速至100秒数(可代表发动机),扭矩,变速箱类型
  • 功能类:启动,熄火,刹车,加速,开灯,关灯
  • 对应的对象:蓝色,200km,迈凯伦,2,2.8s,797Nm max…
  • 可以看到在OPP中需要先设计类,在类的定义中准确描述对其进行的操作,然后应用到对象上,这就是自底向上(bottom-up)的设计。首先创建了可重复使用的代码减少工作量,此外通过多态(Polymorphism)可以实现为运算符和函数创建多个定义,还有通过继承从父类派生出子类,优点明显。
4.泛型编程(Generic Programming)
  • 与OPP目标一致,旨在重用代码和抽象通用概念,但与侧重于数据的OPP不同,泛型编程侧重于特定的数据类型。函数模板,类模板等构建了针对不同数据类型的函数的统一模板,使得在编写是不同通过大量函数的重载占用空间,C++通过模板编译生成具体的函数.
Section2 Standardization of C++ 1.C++是C的超集?
  • Bjarne Stroustrup
    《The C++ Programming Language》 《The design and Evolution of C++》 AT&T Labs Research个人网站 http://www.research.att.com/-bs/

  • 开发C++之初设计者Bjarne受到Simula67语言的影响加入了OPP和泛型,但未对C组件做大改动。理想情况下,“C++是C的超集,任何有效的C程序都是有效的C++程序,编写C++程序仍可以调用C软件库”。

2.C++的标准化
  • 一个程序在不同的环境下应用可能就会出现各种各样的问题,硬件上特定的程序是不可移植的,此外语言上人们对事物描述的差异也可以导致实现的不同。1990年,ANSI联合ISO制定了C++98标准,此后又有C++11的新标准制定。
  • 在此过程中,ISO吸收了ANSI的C++标准,从而尽量保证“C++是C的超集”。开发者Kernighan和Ritchie写的《The C Programming Language》在ANSI C出现后K&R C被很多称为Classic C(经典C)
Section3 Create a Program 1.程序运行的大体过程
  • 写源代码–>编译源代码–>连接目标代码形成可执行代码
  • 源代码(Source Code) :用文本编辑器写好的程序,通常为高级语言
  • 目标代码(Object Code):源代码被编译器(Compiler)编译为机器语言
  • 可执行代码(Executable Code):将目标代码与函数的目标代码及标准的启动代码组合为完整的机器语言代码
2.源代码的创建中的提醒
  • 后缀(magic number):告知编译器文件类型,后面的字符称为拓展名(filename’s extension)
  • IDE(Integrated Development Environment)集成开发环境:
    例如Visual Studio,Apple Xcode,在主程序中管理开发的所有步骤。IDE会提供多个菜单项:Compile(对当前打开代码编译)、Build&Make(编译项目中所有源代码,只重新编译修改的文件)、Build All(编译所有源代码)、link(将目标代码与库代码连接)、Run&Execute(运行程序)、Debug(以步进方式执行程序)
  • 编译器在执行完程序后立即关闭辅助窗口的解决
	cin.get();	//按下Enter才结束等待
	cin.get();	//可能一个还不够
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/289353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号