- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章构造函数和析构函数整理ppt
10.5 对象数组 对象数组是指数组元素为对象的数组,该数组中所有元素必须是同一个类的对象。对象数组的定义、赋值和使用与普通数组一样,只是数组的元素与普通数组不同,它是类的对象。 对象数组的定义格式为: 类名 数组名[大小]…; 例如:DATE dates[5]; 使用对象数组成员的一般格式是: 数组名[下标表达式].成员名 例如:dates[0].year; #include iostream.h //Example 10_13 class DATE{ int month,day,year; public: DATE() { month=day=year=0; coutDefault constructor called.endl; } DATE(int m,int d,int y) { month=m; day=d; year=y; coutConstructor called.dayendl; } ~DATE() { coutDestructor called.dayendl; } void Print() { coutMonth=month,Day=day,Year=yearendl; } }; void main(void) { DATE dates[3]={DATE(7,22,1998),DATE(7,23,1998)}; //A dates[2]=DATE(7,25,1998); //B for(int i=0;i3;i++) dates[i].Print(); //C } Constructor called.22 Constructor called.23 Default constructor called. Constructor called.25 Destructor called.25 Month=7,Day=22,Year=1998 Month=7,Day=23,Year=1998 Month=7,Day=25,Year=1998 Destructor called.25 Destructor called.23 Destructor called.22 DATE temp(7,25,1998); date[2] = temp; 类名(参数表) Visual C++程序设计 徐 建 南京理工大学计算机系 【学习目标】 ◇理解类的构造函数和析构函数。 【重点与难点】 ◇ 构造函数(包括拷贝构造函数)和析构函数的概念和用法; 第十章 构造函数和析构函数 10.1 构造函数 10.1.1 构造函数的定义 10.1.2 缺省构造函数 10.1.3 拷贝构造函数 10.1.4 单个参数的构造函数 10.2 析构函数 10.3 对象的生存期 10.3.1 全局对象、静态对象与局部对象 10.3.2 自由存储对象 10.4 成员对象 10.5 对象数组 10.1 构造函数 构造函数(功能:创建对象时,使用给定值将对象初始化) 建立一个对象时,常常需要作某些初始化的工作(例如对数据赋予初值),C++提供了一种特殊的成员函数——构造函数 (constructor),这种函数与其它成员不同,不需要用户发“消息”来激活它,而是在建立对象时由系统自动执行。构造函数是由用户定义的,它必须与类名同名,以便系统能识别它并把它作为构造函数。 10.1.1 构造函数的定义 构造函数的特点: 构造函数名字必须与类名相同。 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 构造函数是一个特殊的函数,无返回值,不指定类型,也不需要加void类型声明。 构造函数可带参数,可不带参数,也可指定参数的缺省值。因此构造函数可重载。 程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。 静态对象首次创建后不再重新产生。 class Date{ public: Date(int y, int m, int d); //说明构造函数 Date(int y=2000) //重载构造函数 { year=y; month=10;day=1; coutConstructor of Date with 1 parameter.endl; } int IsLeapYear(); void Print(); private: int year,month,day; }; Date:: Date(int y,int m,int d) //类外
文档评论(0)