《面向对象的功能实现》教学课件_第1页
《面向对象的功能实现》教学课件_第2页
《面向对象的功能实现》教学课件_第3页
《面向对象的功能实现》教学课件_第4页
《面向对象的功能实现》教学课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对象的声明和实例化1.类的实例化-对象

类的实例化即定义类的对象,类似于定义任何类型的变量(类名称为一个新的类型说明符)定义对象有三种形式(1)先声明类类型,后定义对象

classDated1,d2;//把class和Tdate合起来作为一个类名

Dated1,d2;//直接用类名定义对象。(2)在声明类类型的同时定义对象classDate{public: voidSet(intm,intd,inty){…}intIsLeapYear(){…}voidPrint(){…} private:intmonth; intday; intyear;}d1,d2;(3)不出现类名,直接定义对象编译系统会为这个对象分配存储空间,以存放对象中的成员。class//无类名{private://声明以下部分为私有的┆

public://声明以下部分为公用的┆}d1,d2;//定义了两个无类名的类

对象由于类和结构是等价的,对类的五种操作对结构也同样适用:(1)对象之间可以相互赋值。

LocationlocationA,locationB; locationA.set(5,6); locationB=locationA;(2)对象可以作为数组的元素。

Locationarrayloc[100];对象的使用(3)可以说明指向对象的指针,但不能取私有数据成员的指针或成员函数的地址。

Locationlocation[10]; Location*pointLoc=&location[0];

当pointLoc被加1后,它将指向下一个Location对象(4)对象可以作为函数的参数,既可作值参也可以作引用参数。

voiddisplay(Location&location){...};

对象的使用类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};例:

classX{……};

classY{XdataMember; ……};(5)一个对象可以是另一个类的成员。注意:允许已定义类名出现在类的说明中//声明一个类类型数据成员对象的使用注意:允许已定义类名出现在类的说明中例:

classX

{

X

dataMember; ……};//错误错误无穷递归结构对象的使用一个对象可以是另一个类的成员。

classTime_date{public:voidset()voidprint();private:inthour;intminute;intsecond;

Datedd;};classDate{public:voidset(int,int,int);voidprint();intget_y();private:intmonth;intday;intyear;};对象的使用

一般对象的成员引用形式

成员访问运算符“.”和“->”数据成员

对象名.成员名或对象指针名->成员名成员函数

对象名.成员名(参数表)或对象指针名->成员名(参数表)成员的访问访问对象中的成员可以有3种方法:通过对象名和成员运算符访问对象中的成员;通过指向对象的指针访问对象中的成员;通过对象的引用变量访问对象中的成员。classA{private: //private说明符在首次出现时可以省略

intm_a;public: //切换到public说明符

intm_b; voidprint(){cout<<m_a<<m_b};intgetA(){returnm_a;}}

Aa;a.m_a;a.m_b;a.print();成员的访问通过指向对象的指针访问对象中的成员;通过对象的引用变量访问对象中的成员。Timet1;Time&t2=t1;cout<<t2.hour;voidFuction(Time&t);Timet,*pTime;//定义对象t和指针变量ppTime

=&t;//使p指向对象tcout<<pTime->hour<<(*pTime).hour<<t.hour;成员的访问成员的存储方式用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。cout<<sizeof(Time)<<endl;课堂练习(分离,实例)实现表示学生的类Student,属性包括名字,学号,性别和生日,行为包括:属性的设置和显示等,返回属性值。建立完整的工程,包括多个源文件和头文件。Student

charname[10]intnocharsexDatebirthdayvoidset();voidset(char*,int,char);voidset(Date&);char*getName();intgetNo();voidprint();

//student.hclassStudent{public:voiddisplay();private:intnum;charname[20];charsex;};//student.cpp#include<iostream>#include″student.h″

voidStudent∷display(){cout<<″num:″<<num<<endl;cout<<″name:″<<name<<endl;cout<<″sex:″<<sex<<endl;}//main.cpp主函数模块#include<iostrea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论