找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2755|回复: 0
打印 上一主题 下一主题
收起左侧

V C++第三部分类和数据抽象—启蒙的面向对象

[复制链接]
跳转到指定楼层
楼主
ID:60076 发表于 2014-4-29 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     随着时间的流逝到了三月底,被C++的类的面向对象摧残了近一个月,渐渐的上手了,语法也逐步形成,随手可以用类来完成基础的数学或者逻辑问题,把这些对象搞清楚了,相信过些时用C++写数据结构的链表和二叉树也很容易搞定了,现在的工作就是收尾了,也就是C++快大功告成了,剩下的就是泛型编程和C++的工具了,不过这也只是C++部分,后面的MFC、VC、UC才是真正的挑战,C++只是打基础而已,最难的都说是MFC,因为据说很纠结,有的人把它叫做麻烦C,一开始就去拖控件,啥玩意,我目前还是不了解啊,慢慢来吧,VC,UC稍微看起来简单一些,不过系统不一样,一个是在windows下操作的,另一个是在Linux下操作的,好了不管那么多了,过些时再来慢慢料理,一口吃不了那么多,得慢慢的啃。
       说起C++的类部分,刚开始真没头绪,可能是思维没跟上吧,对象老出错,加上对象指针后,更加的混乱,不愧是C++的重头戏,果然好戏在后头!第一步接触类最熟悉的就是class、公有的public、私有的private和初始化的各种构造函数、成员函数,至于说保护的protected在很后面才开始接触,因为涉及到类的继承,类都没学好,根本就无法去学继承和多态。总的来说类和C的结构体很相似,但是扩展了很多功能,结构体原本就是公有的类,所有类外的对象都可以使用它的成员或者是成员函数,现在多了私有的private,也就是说类外的对象无法使用这个类的私有成员,只能通过这个类的公有成员函数来调用私有部分的元素,因此这样就有了安全的封装性,而构造函数一般用来初始化类的各种成员。
       初步掌握类后第二步就开始接触友元、this指针和析构函数了,友元就是好基友,关键字friend嘛,友元可以用来做友元类和友元函数使用,本来一个类私有成员在类外是无法使用的,就像是陌生人无法使用主人家的东西一样,可是有了友元friend就可以大胆的使用了,不过好基友并不是很好,因为它破坏了私有原本的安全性。this指针呢,说穿了就是类的本身指针,也就是这个类的首地址,刚开始用它还真是不习惯啊,不过用多了就好了。还有析构函数的用途就是毁灭对象,和初始化的构造函数相反,如果说构造函数是建房子的,那么它就是拆房子,而且是先拆最后创建的,这一点和拆楼房一样,果断的就是一个活生生的堆栈。
        接着第三步就是运算符重载,一个符号可以代替唧唧歪歪的描述了,不管是代码也好,还是输出输入IO也好,所以说这个东西很强大,能够省略一大波描述,基本上所有的运算符都可以用来使用代表一大串话,这一点有点像宏定义,比如一个输入的运算符重载ostream& operator<<(ostream& output,Class& c),(PS: ostream是输出端口,output是输出端口的名字,operator是运算符重载的关键字) 通过自己随心所欲的描述之后,以后只要用到‘<<’加类的类名就等于输出你想要的各种结果。不仅如此还能通过它运算各种有规律的计算,比如计算两个虚数只用一个'+'就行了,而原来的加号只能用于两个实数相加,通过重载后就可以计算虚数了,再比如可以计算矩阵、图形、英文字母、各种大算法,所以也经常用,比如一个加法的运算符重载  Class& operator+(Class& c1,Class& c2)就是可以把两个类c1,c2通过自己各种规则或者不规则的手段相加,加的规则自己定,甚至可以定为相减,相乘等,于是变成类似3+2=1的情况,不过这个只有奇葩才写成这样不靠谱的东西。
       终于到了类的高级部分,也是我目前正在完成的部分,第四步就是类的继承和派生,继承就像是人一代代的传承下去,下一代遗传上一代的一部分基因,类也如此,也有父母和子女,不过它们名字是父类和子类,不过一般还是叫基类和派生类,类继承方式有三种,公有继承、私有继承和保护继承,不管怎么样,通过不同的继承方式可以继承上一代的不同的基因,而保护protected这个时候就开始有作用了,子类可以用父类的保护成员和保护成员函数,相当于儿子可以使用父亲的东西一样,而外人是无法使用的。第五步就开始接触多态和虚函数了,目前还在学习当中,虽然了解了很多,但还是需要深入的了解才行。总体来说这两步整合起来就是面向对象的高级部分。
       好了C++剩下就是第四部分面向对象高级篇和泛型编程篇了, 在四月份打好这场决战!有个好的收尾才有新的开始,最近发现一个谬论,从游戏角度出发,发现有三个主流方向,把C++当作攻击魔法系为主的魔法师职业,数据结构相当于辅助回复系僧侣职业,两者掌握完全后转职成为魔法全知的贤者职业,相当于做算法的。而工具性的东西就是非魔法型的职业,可以比如战士等于数据库Oracle,武术家等于win32,加起来的进阶职业战斗大师等于MFC,另一个方向  盗贼等于SQL,弓箭手等于Unix,加起来的进阶职业游侠等于UC。总结了几个游戏然后和这些东西关联起来产生得到的结果,所以一个职业一个职业的玩,修炼好了转职换个职业,直到所有职业修满为止,这也是我玩RPG的一贯习惯,所以每次玩RPG都会很累,累的是练级!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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