《类的定义及对象的使用.ppt》由会员分享,可在线阅读,更多相关《类的定义及对象的使用.ppt(11页珍藏版)》请在三一办公上搜索。
1、一、定义类1、声明类,义一个类的一般格式为:class 类名 private:私有数据成员和成员函数 protected:保护的数据成员和成员函数 public:公有数据成员和成员函数;/成员函数体的具体定义,class Point private:int x,y;public:void Setxy(int a,int b);void Move(int a,int b);void Display();int Getx();int Gety();;,注意:类要先声明后使用类的名字不能相同关键字private、protected、以及public所有成员如果没有关键字说明,则其访问权限默认为pri
2、vate,2、定义成员函数,返回类型 类名:成员函数名(参数列表)成员函数的函数体 其中,“:”是作用域运算符,void Point:Setxy(int a,int b)x=a;y=b;void Point:Move(int a,int b)x=x+a;y=y+b;void Point:Display()coutxtyendl;int Point:Getx()return x;int Point:Gety()return y;,练习 定义一个日期类,属性:年 月 日操作:设置日期(年、月、日)判断是否为闰年(能被4整除但不能被100整除,或 者能被400整除),如果是输出“*是闰年”,否则输出
3、“*不是闰年”显示日期(月:年:日),int Date:getleap()if(year%4=0,举例:定义一个日期类class Date private:int day,month,year;public:void set(int y,int m,int d);int getleap();void print();;void Date:set(int y,int m,int d)day=d;month=m;year=y;,成员函数函数体可以定义在类体内,class Point private:int x,y;public:void Setxy(int a,int b)x=a;y=b;void
4、 Move(int a,int b)x=x+a;y=y+b;void Display()coutxtyendl;int Getx()return x;int Gety()return y;;,class Point private:int x,y;public:void Setxy(int a,int b);void Move(int a,int b);void Display();int Getx();int Gety();;void Point:Setxy(int a,int b)x=a;y=b;void Point:Move(int a,int b)x=x+a;y=y+b;void Po
5、int:Display()coutxtyendl;int Point:Getx()return x;int Point:Gety()return y;,二、声明和使用类的对象,定义了“类”类型后,可以用它来声明对象。只有产生类的对象,才能使用这些数据和成员函数。,void main()Point A,B;A.Setxy(25,55);A.Display();coutA.Getx()endl;,例如:void main()Point A,B;Point*p=,Point不仅可以声明对象,还可以声明对象的引用和对象的指针,练习:读程序写出运行成果,class Point private:int x
6、,y;public:void Setxy(int a,int b)x=a;y=b;void Move(int a,int b)x=x+a;y=y+b;void Display()coutx“,”yendl;int Getx()return x;int Gety()return y;;,void print(Point*a)a-Display();void print(Point,练习:怎样定义一个三角形类,定义一个三角形类,其数据成员包括三角形的三条边长和三角形的面积,其成员函数Set可以设置三角形的三边长度;成员函数Getarea可以得到三角形的面积;成员函数Print可以输出三条边的长度以
7、及三角形的面积。,class Trial private:float x,y,z;float area;public:void Set(float a,float b,float c);void Getarea();void Print(void);void Trial:Set(float a,float b,float c)x=a;y=b;c=z;void Trial:Getarea()float t;if(a+bc,void Trial:Print()cout三角形三边长为:xtytzendl;cout三角形面积为:areaendl;,void main()Trial tr1;tr1.set(3,4,5);tr1.Getarea();tr1.Print();头文件:#include#include using namespace std;,小结:,面向对象程序设计的核心是类和对象;对象是现实实体的反映;C+通过类实现数据封装,即通过指定个成员的访问权限来实现。一般将数据成员说明为私有的,以便数据隐藏;而将部分成员函数说明为公有的,用于提供外界的接口。,