欢迎来到天天文库
浏览记录
ID:58886625
大小:243.50 KB
页数:62页
时间:2020-09-30
《C程序设计第7章类和对象的基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章类和对象的基础本章内容提要类与对象的定义对象的初始化成员函数的特性静态成员友元类的作用域与对象的生存期一、类与对象的定义什么是类?类是一种新的数据类型。类是逻辑相关的函数和数据的封装,是对所处理的问题的抽象描述,所以,类是实现抽象类型的工具。类(Class):是一种用户定义的类型,它包括定义的数据和其对应的操作(函数)。使用对象将数据和操作进行封装(Encapsulation)。什么是对象?类实例化后便生成对象。对象(Object):含有数据(对象的属性Attribute)又含有对数据的操作代码(Method)的一个逻辑封装体。属性:描述对象特征的数据。方法:对属性的操
2、作。面向对象编程利用对象进行程序设计1.类的定义类的定义一般分为说明部分和实现部分。说明部分:类中的成员数据成员成员函数的说明实现部分成员函数的具体定义例如:定义一个汽车类型号、外壳、车轮等(数据成员)启动、加速和停止等(成员函数)类的定义格式:class<类名>{public:<公有数据成员和成员函数的说明或实现>private:<私有数据成员和成员函数的说明或实现>protected:<保护数据成员和成员函数的说明或实现>};<各个成员函数的实现>例:坐标点类问题:将坐标点与相应操作封装成类classTPoint{public:voidSetxy(inta,intb);/
3、/说明在类体内,定义在类体外voidMove(int,int);//函数原型声明,参数名可给可不给出voidPrint();intGetx();intGety();private:intx,y;//数据成员};例:坐标点类(续上)问题:将坐标点与相应操作封装成类voidTPoint::Setxy(inta,intb){x=a;y=b;}voidTPoint:move(inta,intb){x=x+a;y=y+b;}voidTPoint::Print();{cout<<"x="<4、intTPoint::Gety(){returny;}在类体外定义成员函数的一般格式为:<函数类型><类名>::<成员函数>(<参数表>){<函数体>}其中,作用域运算符“::”是用来标识成员函数是属于哪个类的,“类名”是成员函数所属类的名字。若在函数前加关键词inline,则成为内联成员函数。若函数较短,可以在类内定义,也称作内联成员函数。例:坐标点类(内联函数形式)问题:将说明部分和实现部分都在类体内定义。classTPoint//类名{public://声明其后为公有成员voidSetxy(inta,intb){x=a;y=b;}voidMove(inta,intb5、){x=x+a;y=y+b;}voidPrint(){cout<<"x="<<对象名列表>说明:<类名>是定义对象所属类的名字。<对象名列表>可有多个对象名,用逗号分隔。例如:TPointp1,p2;//定义TPoint类型的对象p1和p2。TPoint*p=&p1;//定义指向对象p1的TPoint类型的指针p。TPoint&c=p2;//定义c为TPoint类型对6、象p2的引用。TPointm[5];//定义一个TPoint类型的对象数组。2.对象的定义与使用对象中数据成员和成员函数的表示方式1:<对象名>.<成员名><对象名>.<成员名>(<参数表>)例如:p1.x,p1.y,p1.Setxy(2,3)对象中数据成员和成员函数的表示方式2:<对象指针名>-><成员名>或者(*<对象指针名>).<成员名><对象指针名>-><成员名>(<参数表>)或者(*<对象指针名>).<成员名>(<参数表>)例如:p->x,p->y,p->Getxy(inta,intb)或者(*p).x,(*p).y,(*p).Getxy(inta,intb)例7.7、1问题:对象的定义和成员函数的调用。#include#include"Tpoint.h"voidmain(){TPointp1,p2;TPoint*p=&p1;p1.Setxy(1,2);cout<<"x="<Setxy(5,6);//或(*p).Setxy(5,6)cout<<"x="<<
4、intTPoint::Gety(){returny;}在类体外定义成员函数的一般格式为:<函数类型><类名>::<成员函数>(<参数表>){<函数体>}其中,作用域运算符“::”是用来标识成员函数是属于哪个类的,“类名”是成员函数所属类的名字。若在函数前加关键词inline,则成为内联成员函数。若函数较短,可以在类内定义,也称作内联成员函数。例:坐标点类(内联函数形式)问题:将说明部分和实现部分都在类体内定义。classTPoint//类名{public://声明其后为公有成员voidSetxy(inta,intb){x=a;y=b;}voidMove(inta,intb
5、){x=x+a;y=y+b;}voidPrint(){cout<<"x="<<对象名列表>说明:<类名>是定义对象所属类的名字。<对象名列表>可有多个对象名,用逗号分隔。例如:TPointp1,p2;//定义TPoint类型的对象p1和p2。TPoint*p=&p1;//定义指向对象p1的TPoint类型的指针p。TPoint&c=p2;//定义c为TPoint类型对
6、象p2的引用。TPointm[5];//定义一个TPoint类型的对象数组。2.对象的定义与使用对象中数据成员和成员函数的表示方式1:<对象名>.<成员名><对象名>.<成员名>(<参数表>)例如:p1.x,p1.y,p1.Setxy(2,3)对象中数据成员和成员函数的表示方式2:<对象指针名>-><成员名>或者(*<对象指针名>).<成员名><对象指针名>-><成员名>(<参数表>)或者(*<对象指针名>).<成员名>(<参数表>)例如:p->x,p->y,p->Getxy(inta,intb)或者(*p).x,(*p).y,(*p).Getxy(inta,intb)例7.
7、1问题:对象的定义和成员函数的调用。#include#include"Tpoint.h"voidmain(){TPointp1,p2;TPoint*p=&p1;p1.Setxy(1,2);cout<<"x="<Setxy(5,6);//或(*p).Setxy(5,6)cout<<"x="<<
此文档下载收益归作者所有