- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++与 C 语言的区别
注明:以下及其后续内容部分摘自《Standard C++ Bible》,所有程序代码都在 Visual Stdio 6.0 中编译运行,操作系统为 WinXP。本文不涉及VC6.0 开发工具的使用,只讲解C++语法知识。C++和 C 的共同部分就不讲解了(如常量和变量,循环语句和循环控制,数组和指针等,这里的一些区别会在本节和下节介绍一下),具体可看精华区 -新手上路-C 语言入门,本文着重介绍C++的特点,如类、继承和多重继承、运算符重载、类模板、C++标准库、模板库、等等。
一、C++概述
(一) 发展历史
1980 年,Bjarne Stroustrup 博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup 博士并不是从头开始设计新语言,而是在C 语言的基础上进行扩建。这就是 C++语言。
1985 年,C++开始慢慢流行。经过多年的发展,C++已经有了多个版本。为此,ANSI 和 ISO 的联合委员会于 1989
年着手为 C++制定标准。1994 年 2 月,该委员会出版了第一份非正式草案,1998 年正式推出了 C++的国际标准。 (二) C 和 C++
C++是 C 的超集,也可以说 C 是 C++的子集,因为 C 先出现。按常理说,C++编译器能够编译任何 C 程序,但是
C 和 C++还是有一些差别。
例如 C++增加了 C 不具有的关键字。这些关键字能作为函数和变量的标识符在C 程序中使用,尽管 C++包含了所有的 C,但显然没有任何 C++编译器能编译这样的 C 程序。
C 程序员可以省略函数原型,而C++不可以,一个不带参数的C 函数原型必须把 void 写出来。而 C++可以使用空参数列表。
C++中 new 和 delete 是对内存分配的运算符,取代了 C 中的 malloc 和 free。
标准 C++中的字符串类取代了 C 标准 C 函数库cstring头文件中的字符数组处理函数。C++中用来做控制态输入输出的 iostream 类库替代了标准 C 中的 stdio 函数库。
C++中的 try/catch/throw 异常处理机制取代了标准 C 中的 setjmp()和 longjmp()函数。
二、关键字和变量
C++相对与 C 增加了一些关键字,如下:
typename bool dynamic_cast mutable namespace
static_cast using catch explicit new const_cast public throw friend true virtual operator false private template reinterpret_cast try not_eq bitand
volatile const protected this wchar_t bitor xor_e and_eq compl or_eq
在 C++中还增加了 bool 型变量和 wchar_t 型变量:
布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据 变量值的真假而赋予整型值 1 或 0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非 0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。
#include iostream.h int main()
{
bool flag; flag=true;
if(flag) couttrueendl; return 0;
}
C++中还包括 wchar_t 数据类型,wchar_t 也是字符类型,但是是那些宽度超过 8 位的数据类型。许多外文字符集所含的数目超过 256 个,char 字符类型无法完全囊括。wchar_t 数据类型一般为 16 位。
标准 C++的 iostream 类库中包括了可以支持宽字符的类和对象。用wout 替代 cout 即可。#include iostream.h
int main()
{
wchar_t wc; wc=b; woutwc; wc=y; woutwc; wc=e; woutwcendl; return 0;
}
说明:某些编译器可能无法编译该程序(不支持该数据类型)。
三、强制类型转换
有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常 数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:
int* iptr=(int*) table;
表达式的前缀(int*)就是传统 C
文档评论(0)