第1章 C++语言概述
上传者:陈斌文|上传时间:2015-04-24|密次下载
第1章 C++语言概述
C++ };
//
void C1: : C1_f ( ) { /* */ }
void C11: : C11_f ( ) { /* */ }
void C12: : C12_f ( ) { /* */ }
void C2: : C2_f ( ) { /* */ }
void C21: : C21_f ( ) { /* */ }
8
C++
?
–用源语言写的,有待翻译的程序
?
–也称为"结果程序",是源程序通过翻译程序加工以后所生成的程序。
?
–是指一个把源程序翻译成等价的目标程序的程序。
?
其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序。
?
若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称
为"编译程序"。
?
这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:
它是边翻译边执行的,即输入一句、翻译一句、 执行一句,直至将整个源程序翻译并执行完
毕。
?
–将源程序输入到计算机中,生成后缀为cpp的磁盘文件。
?
–将程序的源代码转换为机器语言代码。
9
?
–将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。
?
VC6.0
?
? VC6.0
–四栏三窗口
?
? VC6.0 5
?
(1)C++对C 的继承和改进。
C++继承了C,并支持面向对象的程序设计。除增加了类以外,C++还对C 的其他方面做了扩
充和更新:
C++使用IO 流类库实现输入输出功能,C 语言的IO 函数也仍然可以使用。
C++程序的源文件的扩展名为cpp。C 语言源程序的扩展名为c。
C++程序中调用某个函数之前需要声明函数的原型。
C++中函数的参数可以采用默认值。
C++增加了引用类型、布尔类型。
C++中常用内联函数来代替#define 宏。
C++中变量和对象可以在需要的地方声明,不必全部写在程序开始的位置。
C++允许函数重载,C 不允许。
C++中用new 操作代替C 中malloc()函数,用delete 操作代替free()函数。
C 中说明结构体变量需要带有关键字struct。关键字是必不可少的。但是在C++中,结构体名
就是类型名,是一种自定义类型,可以省略关键字 struct 而只用结构体名来声明变量。对于枚举
类型也是一样。
C++扩充了C 的关键字。
在C++中允许使用作用域运算符∷。
在C++中允许声明一个无参数的函数。
C++程序的主函数返回类型要求为int,如果不写return 语句,则自动返回0。
(2)C++语言与Java 和C#的差别?
10
C++是Java 和C#的始祖。尽管 Java 和C#添加、删除和修改了许多功能,但总的来说,这3
种语言的语法和面向对象模式十分相似。另外,3 种语言的面向对象编程风格也非常相似。如果
掌握了C++,那么很快就可以掌握Java 和C#语言了。反之亦然。
C++,Java 和C#的主要区别在于三者运用的计算环境的类型不同。创建C++是为特定类型的
CPU 和操作系统编写高性能的程序。Java 和 C#的开发则是为了满足因特网的联机环境下特殊的
编程需求。因特网连接许多不同类型的CPU 和操作系统。因此,创建跨平台、可移植程序的能力
就成为最重要的特征。第1 种满足这种特性的语言是Java 语言。Java 语言编写的程序可以在因特
网上自由地传递。然而,Java 程序执行速度要比C++慢得多,这也是可移植性好的代价。C#也是
如此。如果要创建一个高性能软件,建议使用C++。如果需要创建一个可移植性高的软件,那么
应该使用Java 和C# 。归根结底应当注意的是,C++ , Java 和C#是为解决不同类型问题而设计
的。问题不在于哪种语言的好与坏,而在于哪种语言更加适合目前的环境。
(3)Java 和C# 为何能够实现跨平台使用,而C++不能?
Java 和C#可以创建跨平台、可移植的程序,而C++不能,这是由于编译器生成的对象代码类
型不同造成的。在C++编译环境中,编译器输出的是机器代码,可以由CPU 直接执行。因此,它
受制于特定的CPU 和操作系统。如果要在不同的系统上运行C++程序,则需要在当前系统下将程
序重新编译成针对该环境的机器代码。
Java 和 C#的跨平台、可移植程序是通过伪代码实现的,即以一种中间语言翻译来实现。在 Java
环境中,这种中间语言称为字节码。在C#中称为微软中间语言。伪代码都是由运行时系统执行的。
对于Java,这种运行时系统称为Java 虚拟机(Java Virtual Machine, JVM), C#中称作公共语言
运行时(Common Language Runtime, CLR)。因此,Java 程序可以运行在任何使用JVM的环境
中,而C# 程序可以运行在任何实现了CLR 的环境中。因为Java 和C#虚拟机的运行会产生一定
的系统开销,而C++程序无需这些开销,故C++程序通常要比使用Java 和C# 编写的程序执行得
快。
(4)C++是一种面向对象的语言,结构化程序设计方法在C++程序设计中是否仍然有用?
结构化程序设计方法始终是编写小规模程序的基础,C++程序中类的行为是以函数的形式抽象出
来的,而编写每个函数时都要运用面向过程的结构化程序设计思想。
(5)负数的“符号”在计算机内如何表示?
计算机能够表示的只有“0”和“1”构成的编码,因此有符号数的符号也要通过二进制编码
表示。正整数无需编码,始终以二进制绝对值的形式存储。对负数的常用编码方法如下:
原码:“符号——绝对值”表示的编码。易于理解,但是“0”的表示不惟一,减法运算不方
便。
反码:由原码求反得到,是由原码求补码的中间结果,通常并不直接使用。
补码:基于模数的概念推导出来的一种编码,可以由反码加 1 得到。“0”的表示惟一,减法
可以转达换言之为加法运算。
(6)小数在计算机内如何表示?
在计算机中通常都采用浮点方式表示小数,由尾数、阶码两部分组成,尾数和阶码都是带符号的
数,可以采用不同的码制表示法,例如,尾数常用原码或补码表示,阶码多用补码表示。这与科
11
学表示未能类似,只是在计算机中浮点数的阶码表示2 的指数。
(7)除了错误信息外,编译器通常还会给出警告信息。那么错误信息和警告信息的差别何在?
编译器除了给出致命性的语法错误,还会报告警告信息。错误信息给出程序中确实存在的语
法错误,警告信息提示,虽然语法规则没有破坏,但是可能会有隐含错误。要认真对待警告,因
为编译器的开发者也是程序员,而且是有经验的程序员,他们针对常见的编程错误,编译器中专
门嵌入了错误检查功能,发出警告。
(8)为什么使用控制台应用程序,它有什么特点?
控制台应用程序表现得不像Windows 应用程序,没有图形用户界面,以命令行方式与用户交互。
这是多数人在被学编程时所采用的方式,它简单易于入门。自从出现可视化编程语言后,初学者
往往基于编写图形界面的程序,而忽略编写小程序的基本功。其实大型程序、漂亮的图形界面也
都是由一个个小的程序段构成的,首先学习命令行程的编写,这是打好编写小程序的基础必不可
少的。同时在很多情况下,人们
只需要编写简单的程序进行数值计算,或者编写不需要交互界面
的系统程序,这时编写命令行程序就尤为简洁方便。
?
– 计算机程序设计语言的发展 、面向对象的软件开发 、信息的表示与存储 、C++概述、程
序的开发过程 、VC6.0集成开发环境介绍
?
– 初步了解面向对象的程序设计语言之由来,初步了解面向对象的程序设计思想之基本特点,
概要性地了解面向对象的软件开发方法,为后续章节的学习奠定基础。
?
– 实验一
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 浅谈版式设计中文字的应用-2
- 我国财政税收遵从成本影响因素分析
- 弘扬太极文化
- 海内时尚摄影:情色与时尚的一线之隔
- 科普知识与科学技术
- 我国财政转移支付模型的设计与分析
- 关于房地产价格波动经济影响因素的探讨
- 论武术散打防守反击技术的运用
- 人民论坛
- 传承书法学术 造化人文经典
- 我国产品理论研究述评
- 我国餐饮业发展的区域差异性分析
- 中国山水画和西方风景画的差异
- 我国产业转移演进趋势的实证研究
- 文字性质系统论
- 我国B2C电子商务模式的发展演化
- 这——就是书
- 我国保险行业发展周期性特征背离及其原因剖析
- 我国产品内贸易决定因素实证研究
- 只道是平常
- 主题海报设计大赛
- 我国不完全城市化问题研究
- 房地产价格与宏观经济指标关系的研究
- 写软文价格
- 对“观察水的沸腾”实验
- 我国产业结构与经济效率分析
- 视觉传达设计史
- 我国财政支出对国内生产总值影响研究
- 英国留学:艺术院校申请时间及要求
- 03《二维动画技法》--第三套试题含答案
网友关注视频
- 二年级下册数学第一课
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
- 《小学数学二年级下册》第二单元测试题讲解
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
- 人教版历史八年级下册第一课《中华人民共和国成立》
- 北师大版数学四年级下册第三单元第四节街心广场
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,辽宁省
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7
- 外研版英语七年级下册module3 unit2第一课时
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
- 化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
- 外研版英语七年级下册module3 unit2第二课时
- 第8课 对称剪纸_第一课时(二等奖)(沪书画版二年级上册)_T3784187
- 化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
- 人教版二年级下册数学
- 冀教版英语五年级下册第二课课程解读
- 七年级英语下册 上海牛津版 Unit5
- 冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
- 七年级下册外研版英语M8U2reading
- 【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
- 河南省名校课堂七年级下册英语第一课(2020年2月10日)
- 冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
- 外研版英语七年级下册module3 unit1第二课时
- 冀教版小学数学二年级下册1
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理