语言第13 C++基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言第13C基础

C和C++的联系 C语言是一种结构化和模块化的语言,适用于结构化程序设计方法,发展快,应用广泛,但其局限性也日渐显现出来。面向对象程序设计方法的提出,及其解决大型问题、复杂问题的优越性,使人们开始重视面向对象程序设计语言的开发。1980年,美国Bell实验室的BjarneStroustrup博士及其同事在C语言的基础上,改进了C语言的一些缺陷,增加面向对象的实现机制,开发出了面向对象程序设计语言——C++语言。 本章主要介绍C++在C基础上扩充的相关内容和面向对象语言C++的基本知识,为读者进一步学习C++更深入的内容打下基础。 Id=Cst.Id; Score=Cst.Score; } void Display( ) { cout”姓名:”Name”” ”学号:”Id” ” ”成绩:”Scoreendl; } }; int main( ) { Cstudent LiuWei(”刘伟”,330l,98); //用普通构造函数创建Cstudent类对象LiuWei Cstudent WangWu(LiuWei); //用拷贝构造函数创建Cstudent类对象WangWu LiuWei.Display( ); WangWu.Display( ); return 0; } : 程序执行结果:姓名:刘伟 学号:330l 成绩:98 姓名:刘伟 学号:330l 成绩:98 C++采用按域拷贝的方式将参数代表的对象值拷贝到新建对象中。新对象与被拷贝对象初值虽然相同,但占用不同的存储空间。如没有自定义的拷贝构造函数,编译系统会自动创建一个缺省拷贝构造函数,但当类的数据成员含有指针成员时,缺省拷贝构造函数不能对其复制,必须自定义拷贝构造函数。 C++编译系统自动生成的缺省构造函数只为对象分配所需的空间,而不作其他工作。对没有定义构造函数的类,若其全部数据成员均为公有数据成员,则其对象的数据成员可以象结构体变量一样初始化,例如: #include string.h #include iostream.h class Cstudent { public: //公用成员 char Name[20]; int Id; int Score; void Display( ) //类的成员函数,是类的实现 { cout”姓名:”Nameendl; cout”学号:”Idendl; cout”成绩:”Scoreendl;} }Liu Wei={”刘伟”,3301,98}; int main( ) { LiuWei.Display( ); return 0; } 程序的执行结果为:姓名:刘伟 学号:3301 成绩:98 对象初始化时,类的“构造函数”是如何知道初始化的具体对象呢?这是通过C++为类成员函数提供的一个隐含对象指针this来实现的。 this是一个隐含指针,不能被显式地声明,它是一个局部变量。对象的每个成员函数都有一个指向该对象的指针,对象的成员函数通过this指针便可以知道自己属于哪一个对象,也可以知道哪些成员属于同一个对象。利用this指针,同一个对象的成员可以互相调用,而无需指明成员所在的对象。 例如:class X { int Xi; public: X(int i){Xi=i;} //隐含使用this指针 }; 它相当于:class X { int Xi; public: X(int i){ this-Xi=i; } //显式的使用this指针 }; 构造函数具有如下特征: ①构造函数的名字与类名相同。 ②构造函数没有返回值,在声明和定义构造函数时是不能说明它的类型的。 ③构造函数的功能是对对象进行初始化,且一般只对数据成员做初始化。 ④构造函数不能像其他成员函数那样被显示地调用,它在对象创建时被自动调用。 ⑤在一个类中可以定义多个构造函数。 (2)析构函数 构造函数在创建对象时自动完成为其分配内存空间及初始化工作,在对象使用完之后撤消对象的工作由类中另一特殊函数来完成,即析构函数。析构函数的名字是在类名前加一个“~”。一个类只能有一个析构函数,析构函数不能被重载,不能带任何参数,也不能有返回值。当一个对象的使用域结束时,系统会自动调用其析构函数完成撤消工作,将对象曾经占用的内存空间释放。对于用new动态申请的内存空间,则必须用delete操作释放,

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档