数据结构02ppt.ppt
《数据结构02ppt.ppt》由会员分享,可在线阅读,更多相关《数据结构02ppt.ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C+程序设计(二),常宝宝北京大学计算机科学与技术系,内容提要,C语言中的结构类定义成员函数定义对象为类成员指定存取权限类与面向对象的程序设计,C语言中的结构,在C语言中,可以把由多个不同类型数据组成的复杂数据类型定义为结构。组成结构的各个分量被称作结构的成员。一旦定义了一个结构类型,可以在程序中建立结构类型变量,并通过使用成员运算符(.)存取结构类型变量的各个成员。,struct _student char id20;/成员char name20;int score;,int main() struct _student s1, s2; s1.score = 98;/成员运算符 strcpy
2、( s1.id, 10300506 ); strcpy( s1.name, 王二 ); s2.score = 88; strcpy( s1.id, 10300507 ); strcpy( s1.name, 陈清扬 );,类,为了支持面向对象的程序设计,C+提供了定义类的方法,类的概念和结构类似,不同之处在于类的成员不仅可以是数据,还可以是函数,分别称为类的数据成员和成员函数。对于类中的每一个成员,C+允许指定其存取权限。在定义了类后,可以建立类型为类的变量,类型为类的变量就是对象。定义对象的方法和定义结构类型变量的方法是类似的。对象一旦建立,程序员也可以存取对象的各个成员,但是否可以存取要受制
3、于定义类时指定的存取权限。存取对象成员的方式和存取结构变量成员的方式类似,使用成员运算符(.)。,类,class BankAccount public:/存取权限 float deposit( float amount ) /成员函数 balance+=amount; return balance; private:/存取权限 unsigned int accountNumber;/数据成员 float balance; /数据成员;,BankAccount a, b; /建立了类型是BankAccount的对象a,ba.deposit( 100 ); /调用对象a的成员函数,类,类的定义使用
4、保留字 class类的定义意味着定义数据成员定义成员函数指定成员的存取权限定义类的基本格式class 类的名字 ;/不要忘记这个分号,定义类的数据成员,在类中定义数据成员和在C的结构中定义(数据)成员的方法相同。如:class TDate int year;int month;int day;,定义类的成员函数,类的成员函数定义了该类所能提供的功能。定义成员函数的方法和普通(全局)函数类似,但不完全相同。例子日期类TDate的对象代表一个日期,和日期有关的操作是:初始化日期(设定日期的初值);把日期按照指定的格式显示出来;判断该日期的年份是否闰年;,在类的内部定义成员函数,定义成员函数,有两种
5、选择,一种是在类内定义,一种是在类外定义。如果类的成员函数比较简单,可以选择在类中进行定义。,class TDate void Set( int m, int d, int y ) month = m; day = d; year = y; int year; int month; int day;,在类内定义成员函数和定义普通函数的形式完全相同。但函数要放在类定义的内部。类的成员函数使用本类的数据成员,可直接使用,无需使用成员运算符(.)。,class TDate public: void Set( int m, int d, int y ) month = m; day = d; year
6、 = y; int IsLeapYear() /判断一个年份是否闰年 return ( year%4=0 ,在类的内部定义成员函数,在类的内部定义成员函数,在类中定义的成员函数一般比较简单,编译器一般将其处理为内联函数,既使没有使用保留字 inline。类通常放在头文件中进行定义,如果在类中进行定义成员函数,成员函数代码会泄漏。如果在类中定义成员函数过多,类定义和成员函数定义混在一起,很不清晰,不利于程序的阅读。,在类的外部定义成员函数,C+允许在类的外部定义成员函数,这样完整的类定义分成两个部分,一部分是类定义,这一部分放在头文件(H文件)中;另一部分是成员函数的定义,这部分通常放在cpp文
7、件中。如果在类的外部定义成员函数,此时类定义中只需定义数据成员及列出该类的成员函数原型。,/ tdate.hclass TDate public: void Set( int, int, int ); int IsLeapYear(); void Print(); int year; int month; int day;,在类的外部定义成员函数,程序显得结构清晰,类提供什么样的功能?只要看类的定义就很清楚。如果关心这些功能是怎样实现的,再去看成员函数的定义。,在类的外部定义成员函数,在类的外部定义成员函数时,不同之处在于应在成员函数名前增加作用域指示符,指明该成员函数隶属于哪个类,格式如下:
8、返回类型 类名:成员函数名(形式参数表) .,int TDate:IsLeapYear() /注意类名应该加在成员函数名的前面 return ( year%4=0 ,如果没有作用域指示符,成员函数就会被编译器误以为是一个普通的函数。为什么在类内定义成员函数时无需作用域指示符?一班有个同学叫张飞、二班也有个同学叫张飞,在类的外部定义成员函数,/tdate.cpp#include #include tdate.h“void TDate:Set( int m, int d, int y ) month = m; day = d; year = y;int TDate:IsLeapYear() ret
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 02 ppt
限制150内