1、知识提要v了解C+发展史及C+应用领域v掌握Code:Blocks程序开发环境v掌握C+程序的基本结构v了解名称空间p 11.1 C+简介v为了解决软件危机,20世纪80年代计算机界提出了面向对象程序设计(Object Oriented Programming,OOP)的编程思想,支持面向对象的程序设计语言也应运而生。其中,C+语言是最流行的一种面向对象的程序设计语言。p 21.1 C+简介vC+在计算机编程语言中占有重要的地位,可以说是所有计算机程序设计语言中最伟大的发明之一。p 3TIOBE 流行语言排行榜 2020.2C+发展史v1982年,美国AT&T公司贝尔实验室的Bjarne St
2、roustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。v1983年该语言正式命名为C+(CPlusPlus)。v1991年,负责C+语言国际标准化的技术委员会工作组召开了第一次会议,开始进行C+国际标准化的工作。p 4C+发展史v1994年,C+的第一个标准化草案出台。v1998年,C+的ANSI/IS0标准被投入使用。通常,这个版本的C+被认为是标准C+,称为C+98。v2003年,ISO的C+标准委员会又对C+略做了一些修订,发布了C+03标准。v2011年ISO发布C+11标准,取代C+标准C+98和C+03。p 5C+发展史v2014年,ISO发布了C
3、+14标准。v2017年,ISO发布了C+17新标准。v目前,最新标准C+20工作正在推进中。v本书中介绍的语法遵循C+11标准。p 6C+应用领域v(1)嵌入式系统开发。v(2)游戏开发。v(3)虚拟现实和仿真。v(4)网络软件开发。v(5)数字图像处理。随着信息化、智能化、网络化的发展,大数据计算、人工智能的不断发展及应用,C+语言的应用会越来越广泛,在各个应用领域都发挥重要的作用。p 71.2 C+程序集成开发环境v(1)微软的Visual Studio系列v(2)Borland的C+Builderv(3)Dev-C+v(4)Code:Blocksp 8Code:Blocks简介vCod
4、e:Blocks是一个开放源码开放源码的全功能的跨平台跨平台C/C+集成开发环境,支持Windows、GNU/Linux。vCode:Blocks提供了许多工程模板,如控制台应用、DirectX应用、动态连接库、OpenGL应用vCode:Blocks下载:http:/www.codeblocks.orgv本书使用windows7操作系统,使用codeblocks-17.12mingw-setup.exe安装包p 9Code:Blocks环境设置v1.设置C+语言标准p 10Code:Blocks环境设置v2.设置调试器p 111.3 C+程序设计基本过程vC+程序设计需要经过四个步骤:源代码
5、编辑、编译、链接、执行。p 12启动代码库代码源代码编译器目标代码链接程序可执行代码项目文件单源文件1.3 C+程序设计基本过程C+实现源文件扩展名UNIXC、cc、cxx、cGNU C+C、cc、cxx、cpp、c+Borland C+cppMicrosoft Visual C+cc、cxx、cppCode:Blockscc、cxx、cppp 13源文件常用扩展名1.4 第一个程序p 14v设计控制台应用程序,在显示器上输出“Hello world.”v例1-1 代码 说明:文件的路径要求C+程序基本结构p 15vC+程序是由一个或多个文件构成的,这些文件可能是源文件或头文件等。源文件是由一
6、个或多个函数构成的,其中有且仅有一个名字为main()的称为“主函数”的函数。v函数的基本结构:类型说明符 函数名(参数列表)语句序列;函数头或函数首部分号是语句结束的标志函数体C+程序基本结构p 16v从键盘输入一个整数,判断该整数是否素数,输出判断结果。例1-2 代码p 17主函数自定义函数返回值返回值的类型判断程序运行是否正常结束:0正常非0不正常C+程序基本结构p 18v这种写法是错误的:v可以这样#include using namespace std;void main()cout Hello world endl;主函数返回值类型不能是void#include using nam
7、espace std;int main()cout Hello world endl;省略return 0;但是不推荐编译预处理命令p 19v如,例1-2中的前两行:#include#include using namespace std;bool isPrime(int n)int k=sqrt(n);for(int i=2;i”输入数据,使用“cout”实现数据的输入,cout结合插入运算符“”实现数据的输出。使用名称空间p 22使用名称空间std使用名称空间p 23v使用名称空间的意义?v其目的是保证可以在语句中直接使用cin、cout和endl等。v名称空间(namespace)是由程
8、序员设计并命名的内存区域,存放一些自定义的变量、常量、函数等标识符,从而与其它同名标识符区分开来,避免同名标识符发生冲突。使用名称空间p 24vC+中的名称空间为防止名字冲突提供了更加可控的手段。v基本思路是,设计多个名称空间,把可能出现冲突的标识符的声明放在不同的名称空间中,当使用这些标识符时可以通过名称空间进行区别,避免同名标识符产生冲突。使用名称空间p 25v名称空间的定义格式namespace 空间名;关键字任意合法的标识符声明或定义常量、变量、函数、类等使用名称空间p 26v如:在程序中使用func()函数时可以通过使用名称空间加以区别,避免冲突。使用名称空间p 27v如何使用名称空
9、间?三种方法1)使用作用域运算符“:”限定标识符。如,cout Space1:a;std:cout Hello world.std:endl;这种方法虽然可以避免冲突,但当多次使用该名称时在代码书写上稍显繁琐。使用名称空间p 28v如何使用名称空间?三种方法2)使用using声明。如,using Space1:a;cout a endl;vusing std:cout;v这种使用方法可能会引发冲突。如,using Space1:a;using Space2:a;使用名称空间p 29v如何使用名称空间?三种方法3)使用using编译指令。如,using namespace std;/使用名称空间
10、std,std中的所有名称均可使用;vusing namespace Space1;v这种使用方法可能会引发冲突。如,using namespace Space1;using namespace Space2;cout a endl;/冲突使用名称空间p 30v说明1.通常使用using声明比使用using编译指令更安全,不容易引起冲突2.如果名称空间中的名称与局部名称发生冲突,则局部名称将覆盖名称空间中的同名名称3.using声明及using编译指令可以写在所有函数的外部,从该语句开始往下整个文件的范围内都可以使用引用的名称,相当于文件作用域的声明。4.如果把using声明及using编译指令写在函数内部,这种方式引用的名称只在该函数内部有效,相当于局部作用范围。小结p 31vC+的魅力在于其功能强大而使用简单。并且,到目前为止C+一直处于不断发展中!v编写C+程序的步骤:编辑、编译、链接、运行。vCode:Blocks开源、跨平台、对C+语法支持度高、开发环境非常人性化等优点。v学习了控制台应用程序编写过程及基本结构。v学会使用名称避免冲突。