- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. C++发展历史简介 随着面向对象程序设计思想的日益普及,很多支持面向对象程序设计方法语言也相继出现了,C++就是这样一种语言。C++是Bjarne Stroustrup于1980年在ATT的贝尔实验室开发的一种语言,它是C语言的超集和扩展,是在C语言的基础上扩充了面向对象的语言成分而形成的。最初这种扩展后的语言称为带类(class)的C语言,1983年才被正式称为C++语言。 C++的历史 Bjarne Stroustrup, 人称C++之父 英文主页: /~bs/ 中文主页: / 经典巨作: 《The C++ Programming Language》 《The Design and Evolution of C++》 对应的中文版: 《C++程序语言设计》 《C++语言的设计和演化》 Bjarne Stroustrup在设计和实现C++语言时,既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。 C++语言由C语言扩展而来,同时它又对C语言的发展产生了一定的影响,ANSI C语言在标准化过程中吸收了C++语言中某些语言成分。 2. C++对C语言的扩展 C++语言是C语言的超集,与C语言具有良好的兼容性,使用C语言编写的程序几乎可以不加修改直接在C++语言编译环境下进行编译。 C++语言对C语言在结构化方面做了一定程度的扩展: 2. C++对C语言的扩展 (1)头文件与流 (2)函数重载 (3)缺省参数 (4)枚举名与结构名 (5)作用域标识符 (6)程序块中的变量声明 (7)常量 (8)引用 (9)单行注释 (10)动态空间申请 C++与C语言 (1)头文件与流 #include iostream : 包含的头文件 using namespace std; : 名字空间 cin,代表标准输入设备 cout,代表标准输出设备 插入运算符 提取预算符 举例: cinab; coutab; (2)函数重载 C++语言可实现函数重载,即多个函数在同一作用域可以用相同的函数名,编译器在编译时可以根据实参的类型来选择应该调用的函数。在C++中,对相同功能但参数类型不同的函数可以使用相同的函数名,在调用时无需记忆多个函数名,而由编译器根据参数类型选择。 不可通过函数的返回值类型区别重载。 C to c++ C++与C语言 (3) 缺省参数 在C++语言中,函数参数允许使用缺省值。当函数调用时,若给出的参数个数少于函数表中参数的总数时,则所缺参数自动取函数参数表中设置的缺省值。 下面是一个参数缺省的例子: void f(int x, int y=10) { …//此处省略函数体内容 } 该程序定义了一个函数f( ),它有两个整形参数,第二个参数缺省值为10。如调用语句:f(2);就相当于f(2,10)。函数可以有多个缺省参数,但应注意只能从右往左缺省,例如: int f1(int x, int y=0, int z=0);//正确 int f2(int x, int y=0, int z); //错误 C++与C语言 (4)枚举名与结构名 C++中枚举可以命名,一个枚举名就是一个类型名字,因此不必在枚举类型名前加标识符enum;同样,定义的结构就是一个用户定义的数据类型,在结构名前也不必加标识符struct。例如下面定义一个结构类型: struct student{ char name[10]; int number; int page; }; 则在定义该结构类型变量时可以使用如下方式: student s1, s2; C++与C语言 (5)作用域标识符 在C++语言中增加了作用域标识符(或称为名字解析运算符)::,用以解决局部变量名与全局变量的同名重复问题。在局部变量的作用域内可用作用域标识符::对被其隐藏的同名全局变量进行访问。下面是一个简单的例子: int x=0; void test(int x) { x=5; //此处引用局部变量 ::x=9; //此处引用全局变量 } C++与C语言 (6)程序块中的变量声明 将几个语句用大括号{ }组合起来就构成了一个程序块。在C语言中,变量的声明只允许出现在程序块的开始,而在C++语言中变量声明可以出现在任何位置。如下面的程序片断: for(int i=0; i10; i++) {
您可能关注的文档
- 穿井得一人原创课件.pptx
- 稻盛与夫经营术读后心得分享.pptx
- 第1讲实数有关概念(白湖镇复学研究课).pptx
- 第02讲uml及rose概述.pptx
- 第2篇 2016版食品生产许可审查新通则生产许可工作流程 ②.pptx
- 第03节 层叠样式表.pptx
- 第13篇 IS-LM模型.pptx
- 福禄克 spectrum ES 运营商使用案例 北京宇非华欧科技发展有限公司.pptx
- 第1篇 安卓一日游2.0.pptx
- 第10篇__票号控制.pptx
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)