C++类三大特征(复习下)

       C++是一种比较流行的面向对象语言,面向对象语言有三大特性:继承封装多态。这种语言起源于八十年代初的贝尔实验室。一直风靡至今,也是我唯一会用的程序开发语言,当然,只是会用,并不算精通。比起以前的fortran,basic等早期的高级语言来,C++的创新之处在于可以自定义数据类型,计算机中,所谓数据类型就是占用内存空间的大小。比如integrate,整数型,会占用4个字节,而如果是一个字符串“abcd”,算上字符串结束符,要占用5个字节,如果使用Unicode双字节,那么就是10个字节。不好意思有扯远了。C++自定义的数据类型称之为“类”,比如dog,是个类,每个类都可以创建出一个具体的对象,比如dog a,那么a就是具备dog特征的一个具体的对象,比如dog类中具有shark(),sleep(),等具体的方法,还有4条腿,一条尾巴等属性。所以说,在C++中类是一种抽象的概念,抽象出了所有dog的公共属性,如果有哈巴狗,黑被,导盲犬都可以从这个基础类来继承,然后可以根据这些扩展类来创建一些具体对象,这就是C++的继承性。所谓封装性就是,你不能直接暴力改变类中具体元素的数值,要通过它们提供的方法接口来完成改变,比如你不能随心所欲的让dog掌握一些复杂的概念,比如识字,你无法把汉字直接输入dog的大脑,你只能通过dog类提供的一种方法,比如训练,来完成你的目的,这是C++的封装性。多态性就是在函数执行时,某个基类指针的方法,可以由不同的扩展类对象来完成,比如dog *p,可以指向哈巴狗,黑被和导盲犬,当指向不同的具体对象时,发生的函数调用shark(),叫声也不一样。这叫做C++类的多态性。

           无独有偶,老婆和C++类具有一定的相似之处。老婆,在未结婚之前,也是一种抽象概念,她是你所欣赏的,愿意与之生活的理想女性的一种抽象。结婚,就相当于根据C++类new(构建)出来一个对象,这个对象在刚new的时候需要占用一些内存,取决于这个类内部属性的多少,如果老婆所属的一类女性上知天文下通地理,还会历史,又兼通摄影和美工,这样根据复杂程度不同,每样属性都需要占用一定的内存,new的过程对你的资源就是个考验;过于复杂的类在你计算机内存不足的情况下,也许会构建失败,返回一个空指针算完。如果你内存够多,创建对象成功了,这个对象就是具体的老婆个体了,通常来说,类方法的数量和类属性的数量有一定的关系,最少是正比,也许是平方或指数关系,也即,new出来一个对象还不算完,这个对象除了在new之初占用了你或多或少的内存之外,在实现对象的功能时,她的方法还会继续占用你的另一种资源:CPU时间,她的方法越多,比如下列函数:travell(),shopping()等,都是消耗CPU时间很多的项目。根据脾气性格不同,老婆这个类封装性有好有坏,通常婚后会了解多些,因为结婚这件事就如同把你声明为了她的友元(friend,C++关键字之一,一个类如果声明为另一个类的友元,那么就可以访问这个类的所有私有成员)。老婆的继承性,表面特征更多的体现在儿子身上,因为据说儿子更像妈妈的多些。至于多态性,恐怕至少需要结多次婚,才能体会到同样是“老婆”这种对象,不同的个体会表现出不同的特征,这个就最好别试了,哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值