c++程序设计谭浩强第9章.doc

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c程序设计谭浩强第9章

第九章 关于类和对象的进一步讨论 9.1 构造函数 9.2 析构函数 9.3 调用构造函数和析构函数的顺序 9.4 对象数组 9.5 对象指针 9.6 共用数据的保护 9.7 对象的动态建立和释放 9.8 对象的赋值和复制 9.9 静态成员 9.10 友元 9.11 类模板 9.1 构造函数 所谓构造函数用于实现对对象的初始化操作; 一、对象的初始化(P263) 1.为什么要对对象进行初始化 class stu { int num; string name; }; stu stu1,stu2; 问题: 一个对象在声明时,系统为其分配存储空间中数据成员是否有确定的值; 2.类的数据成员是否可以在类声明的同时为其初始化 二、构造函数的作用 构造函数是一种特殊的成员函数,其作用是:为新创建的对象分配空间,或为对象的数据成员初始化。构造函数是由用户定义的,他必须与类名同名,以便系统能识别他并把他们作为构造函数(注意:当在类中用户没有定义构造函数时,系统将给出默认的构造函数)。 1.构造函数的声明 例9.1 P264在例8.3的基础上定义构造函数 #include iostream using namespace std; class Time { public: Time(int h,int m,int s) //构造函数 { hour=h; minute=m; sec=s; } void set_time(); void show_time(); private: int hour; int minute; int sec; }; void Time::set_time() { cinhour; cinminute; cinsec; } void Time::show_time() { couthour:minute:secendl; } int main() { Time t1(10,10,10); t1.show_time(); Time t2(20,20,20); t2.show_time(); return 0; } 说明: 在建立Time类的对象时,自动执行构造函数Time(),使该类中的所有对象中的各数据成员赋初值0。 2.构造函数的特点 构造函数是一个特殊的成员函数,该函数的名字与类名相同; 构造函数的功能是给对象初始化; 构造函数的函数体可写在类体内,也可写在类体外; 构造函数可以带参数,也可以不带参数; 程序中不能直接调用构造函数,在创建时由系统自动调用构造函数,构造函数一般声明为public; 构造函数不允许有返回值,也不允许定义构造函数的返回值类型,其中包括void类型; 如果用户没有自定义构造函数,则系统自动一个缺省的构造函数,而该缺省的构造函数,不执行初始化操作。 例9.1‘ 将构造函数在类内声明,在类外定义 #include iostream using namespace std; class Time { public: Time(); //构造函数声明 void show_time(); private: int hour; int minute; int sec; }; Time::Time() //构造函数定义 { hour=0; minute=0; sec=0; } void Time::show_time() { couthour:minute:secendl; } int main() { Time t1; t1.show_time(); Time t2; t2.show_time(); return 0; } 三、带参数的构造函数(P266) 目的:实现对不同的对象的数据成员进行不同的初始化。 带参数构造函数首部的一般形式为: 构造函数名(类型1 形参1,类型2 形参2,。。。。。) 用带参构造函数直接创建对象一般形式为: 类名 对象名(实参1,实参2,。。。。。。) 例9.2 有两个长方柱体,其长、宽、高分别为:(1)12,25,30;(2)15,30,21。要求:分别求他们的体积。 问题分析: 长方柱体具有的共同属性:长(he)、宽(wi)、高(le); 长方柱体积计算: he*wi*le 用成员函数实现; #include iostream using namespace std; class B

文档评论(0)

kaiss + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档