第9章类和象.ppt

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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 构造函数 9.1.1 对象的初始化 如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。如 class Time { public: //声明为公用成员 int hour; int minute; int sec; }; Time t1={14,56,30}; //将t1初始化为14:56:30 注意: 类的数据成员是不能在声明类时初始化的。 如果数据成员是私有的,或者类中有private或protected的成员,就不能在定义对象时对数据成员进行初始化。 9.1.2 构造函数的作用 构造函数是一种特殊的成员函数,在建立对象时自动执行。 构造函数的名字必须与类名同名 构造函数不具有任何类型 无返回值 构造函数的功能由用户定义,用户根据初始化的要求设计函数体和函数参数。 例9.1 在例8.3基础上定义构造成员函数。 #include iostream using namespace std; class Time {public: Time( ) { hour=0; minute=0;sec=0; } //构造函数不具有任何类型,无返回值 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; //建立对象t1,同时调用构造函数t1.Time( ) t1.set_time( ); t1.show_time( ); Time t2; //建立对象t2,同时调用构造函数t2.Time( ) t2.show_time( ); //显示t2的数据成员的值 return 0;} 构造函数也可以在类内对构造函数进行声明而在类外定义构造函数。将上例改为: Time( ); //在类内对构造函数进行声明 在类外定义构造函数: Time∷Time( ) // 在类外要加上类名和域限定符“∷” { hour=0; minute=0; sec=0; } 说明: (1) 在类对象进入其作用域时调用构造函数。 (2) 构造函数没有返回值,因此也不需要在定义构造函数时声明类型。 (3) 构造函数不需用户调用,也不能被用户调用。 (4) 在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。 (5) 如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。 9.1.3 带参数的构造函数 构造函数首部的一般格式为: 构造函数名(类型 1 形参1,类型2 形参2,…) 说明: 用户是不能调用构造函数的,因此无法采用常规的调用函数的方法给出实参。实参是在定义对象时给出的。定义对象的一般格式为: 类名 对象名(实参1,实参2,…); 例9.2 有两个长方柱,其长、宽、高分别为: (1)12,20,25;(2)10,14,20。求它们的体积。#include iostream using namespace std; class Box {public: Box(int,int,int); //声明带参数的构造函数 int volume( ); //声明计算体积的函数 private: int height; int width; int length; }; int Box∷volume( ) //定义计算体积的函数 { return(height*width*length);} int main( ) {Box box1(12,25,3

文档评论(0)

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

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

1亿VIP精品文档

相关文档