《类的定义及对象的使用.ppt》由会员分享,可在线阅读,更多相关《类的定义及对象的使用.ppt(11页珍藏版)》请在金锄头文库上搜索。
1、 一、定义类1、声明类n义一个类的一般格式为:义一个类的一般格式为: 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(
2、 );;n注意:注意:类要先声明后使用类要先声明后使用类的名字不能相同类的名字不能相同关键字关键字private、protected、以及以及public所有成员如果没有关键字说明,则其访问权限默认所有成员如果没有关键字说明,则其访问权限默认为为private 2、定义成员函数n 返回类型返回类型 类名类名:成员函数名(参数列表)成员函数名(参数列表) 成员函数的函数体成员函数的函数体 其中,其中, “:”是作用域运算符是作用域运算符n void Point :Setxy(int a, int b) x=a; y=b; void Point :Move(int a, int b) x=x+a;
3、 y=y+b; void Point :Display()coutxtyendl;int Point:Getx() return x;int Point:Gety()return y;练习 定义一个日期类n属性:年 月 日n操作:设置日期(年、月、日) 判断是否为闰年 (能被4整除但不能被100整除,或 者能被400整除),如果是输出“*是闰年”,否则输出“*不是闰年” 显示日期(月:年:日) int Date:getleap() if ( year%4 =0 & year%100 !=0 ) | (year %400 = =0) coutyear“is leap year”endl; els
4、e coutyear“is not leap year”endl; void Date:print() coutmonth“:”day“:year endl;举例:定义一个日期类举例:定义一个日期类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 priva
5、te : int x, 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( ) 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
6、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 Point :Display()coutxtyendl;int Point:Getx( ) return x;int Point:Gety( ) return y; 二、声明和使用类的对象二、声明和使用类的对象n定义了定义了“类类”类型后,可以用它来声明类型后,可以用它来声明对象。对象。n只有产生类的对象,才能使用这些数据只有产生类的对象,才能使用这些数据和成员函数。和成员函数。void mai
7、n( ) Point A, B; A.Setxy(25,55); A.Display( );coutA.Getx( )Display( ); R.Display( );nPoint不仅可以声明对象,还可不仅可以声明对象,还可以声明对象的引用和对象的指针以声明对象的引用和对象的指针练习:读程序写出运行成果class Point private : int x, 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“,”yDisplay()
8、;void print (Point &a)a.Display();void main() Point A, B,*p; Point &RA=A; A.Setxy(25,55); B=A; p=&B; P-Setxy(112,115); print(p); P-Display(); RA.Move(-80,23); Print(A); Print(&A);练习:怎样定义一个三角形类 定义一个三角形类,其数据成员包括三定义一个三角形类,其数据成员包括三角形的三条边长和三角形的面积,其成员角形的三条边长和三角形的面积,其成员函数函数Set可以设置三角形的三边长度;成可以设置三角形的三边长度;成员函
9、数员函数Getarea可以得到三角形的面积;可以得到三角形的面积;成员函数成员函数Print可以输出三条边的长度以可以输出三条边的长度以及三角形的面积。及三角形的面积。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
10、(a+bc&b+ca&a+cb) x=a; y=b; z=c; t=(a+b+c)/2; area=sqrt(t*(t-a)*(t-b)*(t-c); else x=y=z=area=0; 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;小结:n面向对象程序设计的核心是类和对象;n对象是现实实体的反映;nC+通过类实现数据封装,即通过指定个成员的访问权限来实现。 一般将数据成员说明为私有的,以便数据隐藏;而将部分成员函数说明为公有的,用于提供外界的接口。