C++程序设计(8)之类和对象

说到类和对象,不得不区分一下他们。可以这么说,鸡、鸭、鹅是一个一个的对象,鸡的翅膀、头就是属性,每天凌晨鸡总要打鸣,那么这就是行为或方法。那么他们都是动物,那么动物就是抽象出来的一个。除了动物,自然界还有植物和非生物,那么他们是相互独立的事物。这里动物对上述的鸡、鸭、鹅就是一个很好的封装。但是你看啊,树相对于空气来说是独立的一个对象,它却留出一个功能来进行氧气与二氧化碳的转换。这就是信息隐蔽。再回到动物这个类,我们还可以想到牛、羊、马,那么这个就是继承,但是他们却不是一个物种,这就是多态。刚提到的鸡、鸭、鹅是鸟类,牛、羊、马是哺乳类。那么他们从动物继承过来,又增加了新的特征。动物则称为父类或基类,鸟类和哺乳动物则称为子类或派生类。在计算机中也叫“软件重用”

拿动物举例,首先得声明一下是动物(声明类),然后用说鸡就是一个动物(定义对象),有了鸡这个对象,那么接下来就是让它干什么,打鸣,吃食,这就是它所谓的类的成员函数,也就是一个函数体。用大括号括起来就是了。引用说白了就是通过一个东西来访问另一个东西。比如说,鸡的翅膀是黑色的。那么就是通过鸡还有它的属性翅膀得到的一个黑色的翅膀。也可以通过中间一个东西来进行访问,那么这个东西就是指针。好比每本书前面都有一个目录。这样用大白话一讲,类和对象这一块就明白很多了吧。

补充(思维导图中没有):。除了这些基础性的东西,我们还需要对类和对象进行进一步的讨论。先说构造函数吧,这个成员函数可特殊了,没有类型,也不返回任何值,还必须与类名同名,只能靠编译识别。当然它的作用是要清楚的-处理对象的初始化。万物皆有正反,这个成员函数的反面叫析构函数,当然说到相反,当然指的是作用相反。说到他们的调用,那正好相反,一个先调用,另一个就后调用呗。

之前我们学的是都是由简单变量构成的数组,那么今天又学到了一个新的数组,它由对象组成,称为对象数组,当然这些对象都是同一类的。再说指针,以前学过指针指向数组、字符串,它还可以指向对象, 简单说说其中的this指针,其实就是一被调用函数所在对象的起始地址。

说到数据安全不得不被重视起来,有些数据是共享的,谁都有可能无意间改变它,那么为了防止它被修改,就要用const,把有关数据设定为常量。但是这些静态常量,不能随时释放掉对象所占据的空间,人们就希望用到它时建立它,不用时就撤销,所以又有了动态建立(new)和释放(delete)

如果说一个类定义了多个对象,那么这几个对象就可以相互赋值,有时候需要用到多个相同的对象,那么就可以进行复制。那具体怎么操作呢,一般形式为类名 对象2(对象1),意思就是用对象1复制出对象2。

上面提到的数据共享,我们能想到的就是用全局变量,可是这样不安全,为什么呢,是因为在各处都可以修改全局变量的值,那么很有可能会有失误导致程序的失败。在这里我们要用一个新的概念,静态成员(static)。可以把数据成员和成员函数都定义成静态的。

再说友元,我们已经见惯了public,在类外可以访问共有成员,private,只有本类中的函数可以访问本类的私有成员,现在就有一个例外-友元(friend)。一旦一个函数被一个类声明为友元函数,那么就是朋友了,就可以访问这个类中的私有成员。当然也可以被多个类做朋友,那么就可以访问多个类中的私有成员。再狠的是我们还可以将一个类声明为另一个类的朋友,俗称友元类,太狠了!

有时候有两个或多个类,其功能是相同的。仅仅是数据类型不同,那么为了避免做重复的工作,我们要用到一个通用的类模板(template),而且它可以有一个或多个虚拟的类型参数,为函数的大量的重复工作立下了汗马功劳啊!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值