C++语言程序设计教程.ppt

  1. 1、本文档共258页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

主编杨进才沈显君刘蓉;第7章类与对象;第7章类与对象;7.1类与对象;【例7-1】模拟时钟

分析:不管什么样的时钟,也不管各种时钟是如何运行的,它都具有时、分、秒3个属性。除了运行、显示时间的根本功能外,还有设置(调整)时间、设置闹钟等功能。将时钟的这些属性与功能抽象出来,分别给出面向过程的程序与面向对象的程序来实现对时钟的模拟。

思考:二者有何不同?;7.1.2类的定义;;7.1.2类的定义;7.1.2类的定义;7.1.2类的定义;7.1.2类的定义;7.1.2类的定义;7.1.2类的定义;7.1.2类的定义;7.1.3对象的建立与使用;7.1.3对象的建立与使用;7.1.4成员的存取控制;7.1.4成员的存取控制;7.2构造函数与析构函数;7.2.1构造函数;7.2.1构造函数;7.2.1构造函数;7.2.2析构函数;7.2.2析构函数;7.2.2析构函数;7.2.2析构函数;1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20;21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42;7.2.3拷贝构造函数;7.2.3拷贝构造函数;1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19;20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44;7.2.4浅拷贝与深拷贝;7.2.4浅拷贝与深拷贝;7.2.4浅拷贝与深拷贝;7.2.4浅拷贝与深拷贝;类相当于一种包含函数的自定义数据类型,它不占内存,是一个抽象的“虚〞体,使用已定义的类建立对象就像用数据类型定义变量一样。对象建立后,对象占据内存,变成了一个“实〞体。

对象如同一般变量,占用一块连续的内存区域,因此可以使用一个指向对象的指针来访问对象,即对象指针,它指向存放该对象的地址。可用类来定义对象指针变量,通过对象指针来访问对象的成员。;7.3.1对象指针;在C++中,对象指针可以作为成员函数的形参,一般而言,使用对象指针作为函数的参数要比使用对象作为函数的参数更普遍一些,因为使用对象指针作为函数的参数有如下两点好处:

(1)实现地址传递。

通过在函数调用时将实参对象的地址传递给形参指针对象,使形参指针对象和实参对象???向同一内存地址,这样,对象指针所指向对象的改变也将同样影响着实参对象,从而实现信息的双向传递。

(2)使用对象指针效率高

使用对象指针传递的仅仅是对应实参对象的地址,并不需要实现对象之间的副本拷贝,这样就会减小时空开销,提高运行效率。;1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18;19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36;37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57;7.3.2对象引用;对象引用的使用格式为:

例如:

ClockC1(8,20,20);

ClockCr=C1;//定义了C1的对象引用Cr。

Cr.ShowTime();//通过对象引用使用对象的成员

运行结果为:

8:20:20;对象引用的优点:

对象引用通常用作函数的参数,它不仅具有对象指针的优点,而且比对象指针更简洁,更方便,更直观。将p7_6.cpp中添加如下函数:

voidClock::TimeAdd(ClockCr)

{

H=(Cr.H+H+(Cr.M+M+(Cr.S+S)/60)/60)%24; M=(Cr.M+M+(Cr.S+S)/60)%60;

S=(Cr.S+S)%60;

}

将C2.TimeAdd(C1);替换为:C2.TimeAdd(C1);

运行结果与p7_6.cpp一样。;对象数组是以对象为元素的数组。对

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档