VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 954|回复: 36

《实用C++》第29课 面向对象的程序设计

[复制链接] share分享到朋友圈
51_avatar_middle
online_admins Syc 发表于 2018-3-22 22:31:11 | 显示全部楼层 |阅读模式
1、什么是面向过程?
咱们先来说说什么是面向过程?其实C语言就是面向过程的语言,C++兼容C语言,所以C++有一部分就是面向过程的。之前咱们给大家讲解的28课的东西主要就是面向过程的。面向过程的程序中函数是构成程序的基本单位,我要实现个功能我就新写一个函数,我要实现另外一个功能我就再新写一个函数,之后调用就行了,这就是面向过程的程序开发的基本流程。

2、什么是面向对象?
面向对象就不单单是为了实现功能而写个函数这么简单了。既然是面向对象的,也就是说我把任何东西都看做是一个对象。这里所说的对象不是北方老百姓眼中的男女朋友的对象,大家可以这么理解,这个对象就是一个物品,一个东西,一个个体。比如可以是个人,也可以是条狗,或者是一个苹果,万物都有可能,万物都是对象。我们拿狗来举例,狗是个对象,狗有什么属性呢?有品种,是哈士奇,还是金毛,是大狼狗,还是吉娃娃,等等。狗还有大小,有颜色,等等,这些都是狗的属性。狗还有一些行为动作或者可以叫做功能,比如狗可以吃东西,狗可以拉屎,狗可以跑,狗可以跳,狗可以汪汪叫,对不对?如果你是一条狗,那么所有这些属性和动作你都应该有,这样说明你才是一条狗。

所以,任何一个对象都应该有属性和行为这两个要素。一个对象就是由多个属性和多个行为构成的。
所以,面向对象的程序设计就是利用上面给大家说的想法。将这个程序涉及到的方方面面分成不同的彼此间有联系的多个对象。在C++语言中,每个对象都是由数据和函数这两个部分构成的。数据就是前面说的对象的属性,函数就是上面说的对象的行为或者功能,用来对数据进行操作的,以便实现某些功能。

例如:我要让狗对象汪汪叫,那么我就要调用其汪汪叫的行为函数,这样狗对象才能汪汪叫,不然他不会乱叫的。

3、对象的封装与信息屏蔽
可以对一个对象进行封装,换句通俗的话就是说可以对一个对象进行整理,我可以决定哪些东西可以让别人看到,哪些东西不想让别人看到。例如:狗对象有汪汪叫的功能。我只要告诉你这个狗对象有旺旺叫的功能就行,具体狗对象内部是怎么叫的,是用嘴巴叫,还是用鼻子叫你没必要知道。你想让狗对象汪汪叫,你就调用汪汪叫的这个行为函数就可以了。没必要知道内部的实现细节。这样也有利于使用,简单方便。C++类对象中的函数名就是对象的对外接口,函数的内部实现别人没必要知道。再举个例子,电视机对象,你想看电视机,只要按电源按钮把电视机打开就可以看了,具体电视机对象是怎么显示节目的图像的,怎么把有线电视的信号接收过来的你不用管。这就是对象的封装与信息屏蔽。

封装是面向对象的程序设计中的一个特点。这里面的封装性有两方面的含义:
一方面就是将这个对象相关的属性和行为封装在对象中,集成在对象中,形成一个基本单位,各个对象之间相互独立,互补干扰。另外一方面就是对象中的某些实现细节对外界屏蔽,隐藏内部实现的细节,只提供基本可用的函数接口,让外界调用。这样做也有利于数据的安全。

4、什么是抽象?
对于刚开始学习面向对象的新手来说阅读各位书记都会提到抽象这个概念,到底什么是抽象?何为抽象?
很简单,其实抽象就是归类,或者说分类。按照类别把世间万物给归类。比如,男人,女人,是两个类别。男人,女人又可以统称为人类,人类和狗可以不可以归类呢?当然也可以,都可以说是哺乳动物,对不对?这就是归类,实际上这就是抽象。抽象的作用就是表示同一类的事物本质。
C++中,类就是对象的抽象,而对象就是类的特例,即,类的具体表现形式。

5、继承与重用:
还是拿之前的狗举例子,比如之前已经抽象出了一个狗的类了,之后呢又出现了一个狗的新品种。这时候你还用完全重头来定义这个狗的新品种吗?当然不用,你直接告诉别人,第一这是一条狗,第二这条狗有什么新的特性,比如不仅会汪汪叫,还会喵喵叫。这就是在以前狗的类型的基础上进行了继承与重用。我继承了基础的狗类别的一些特性,比如狗的颜色,有四条腿,会吃东西,会拉屎,会汪汪叫等等。并且增加了我自己的新特性,会喵喵叫。也就是说不用重头来定义或者描述这个新品种的狗了。可以说站在巨人的肩膀上。比如:中国八十年代的时候没有自己的汽车,想造一台属于中国人民自己的品台汽车。那么用从头来吗,肯定不用,为什么,因为国外有现成的汽车,也都知道,汽车有四个轮子,有发动机,有变速箱等等。所以这就是基础,这就是继承与重用。继承与重用也是面向对象编程过程中的一个非常重要的特性。大大缩短了开发周期。

6、多态性:
面向对象编程中的多态性,主要指的是对同一类别的不同对象调用同一个行为或者函数的时候,表现不同。例如:张三,李四,王五,这三个人,他们都属于同一类别,都是人类,对吧?调用他们的同一行为函数:跳高,三个人都会跳高,但是每个人跳的高度肯定不同。调用他们的同一行为函数:百米跑步,三个人都会向着100米的终点跑去,但是每个人所用时间肯定不同。这就是多态性。
在C++中多态性指的是由继承而产生的不同的派生类,派生类对象对同一行为调用会做出不同的响应。
多态性也是面向对象程序设计的一个非常重要的特性,能增加程序的灵活性!

7、小作业:
本节课主要讲解的是一些概念性的东西,但是这些东西大家一定要好好理解,做到真正明白是怎么回事,因为以后会经常用到,在这里我也想通过各种举例、比喻,通过通俗易懂的方式来让大家能更容易理解这些抽象的概念。
所以本节课的作业就是深入的理解面向对象编程,理解本节课介绍的这些概念性的东西,大家加油!

第29课免费试看,下载地址回复后可见!
游客,如果您要查看本帖隐藏内容请回复

#######################################################
获得所有教学视频、课件、源代码以及售后答疑详见:
《实用C++》:http://www.cctry.com/thread-275996-1-1.html
VC驿站官方客服QQ:8260671

#######################################################

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

16_avatar_middle
online_vip12 firefox 发表于 2018-3-22 23:10:03 | 显示全部楼层
狗对象,哈哈,老大这比喻真是无敌了!《实用C++》第29课 面向对象的程序设计

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

78_avatar_middle
online_member csa 发表于 2018-3-23 08:36:09 | 显示全部楼层
出面向对象啦。不错,谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

98_avatar_middle
online_member tomok 发表于 2018-3-23 13:37:57 | 显示全部楼层
继续学系

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

10_avatar_middle
online_vip08 小菜一碟 发表于 2018-3-25 08:49:59 | 显示全部楼层
开始学这个了哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

44_avatar_middle
online_member a281288098 发表于 2018-3-25 21:23:02 | 显示全部楼层
先占楼,给老大点赞!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
online_member wangki216 发表于 2018-3-26 00:08:42 | 显示全部楼层
29课在哪里啊  老大 入门总共有多少课呢  能够解答下  还有 你的qq群是多少

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

51_avatar_middle
ico_lz  楼主| Syc 发表于 2018-3-26 00:11:55 | 显示全部楼层
wangki216 发表于 2018-3-26 00:08
29课在哪里啊  老大 入门总共有多少课呢  能够解答下  还有 你的qq群是多少

29课今天晚点会上传的,实用C++这套课程初步估计在5,60课的样子吧!
有免费的QQ交流群:76221735,不提供该课程的售后答疑服务,不过可以跟网友一起交流
有收费的vip售后答疑群,相关的vip详情请见:http://www.cctry.com/static/vip/index.html
关于实用C++的课程具体介绍在这里:http://www.cctry.com/thread-275996-1-1.html
多谢支持啊!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_member Sylm 发表于 2018-3-27 14:17:12 | 显示全部楼层
看下下载地址

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_member Sylm 发表于 2018-3-27 14:18:33 | 显示全部楼层
回复了,话说,没有下载地址,这一课只是文字吗?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

69_avatar_middle
online_member awfymwvf 发表于 2018-3-28 09:23:18 | 显示全部楼层
谢谢SYC,和你学到了很多,真心感谢,希望早日能有下载地址。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

69_avatar_middle
online_member awfymwvf 发表于 2018-3-29 16:55:46 | 显示全部楼层
SYC大神,这个视频还没有上传吗?万分感谢,辛苦了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

80_avatar_middle
online_member zp521 发表于 2018-3-30 08:41:24 | 显示全部楼层
坚持学习!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

74_avatar_middle
online_vip08 wssfcn 发表于 2018-3-31 09:28:16 | 显示全部楼层
看看                  

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

22_avatar_middle
online_vip jesy 发表于 2018-3-31 12:03:08 | 显示全部楼层
开始学这个了哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

18_avatar_middle
online_vip 听雨声等你笑 发表于 2018-3-31 21:53:20 | 显示全部楼层
学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

84_avatar_middle
online_member glgh 发表于 2018-4-1 10:23:58 | 显示全部楼层
学习下,谢谢

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

82_avatar_middle
online_member DetectiveY 发表于 2018-4-1 10:39:41 | 显示全部楼层
继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

72_avatar_middle
online_member 忆C 发表于 2018-4-1 12:39:36 | 显示全部楼层
很不错,开始学这个了哈

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

98_avatar_middle
online_member qq123180056 发表于 2018-4-2 21:30:21 | 显示全部楼层
感谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-4-25 12:58

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表