教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> IT计算机> C/C++资料> 第1章 C++语言概述

第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月月考生物试卷

网友关注视频

二年级下册数学第一课
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+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课件+教案,安徽省