【C++的学习之路】类、继承、接口、多态

本文分享了作者在重新学习C++面向对象编程时的心得体会,重点讨论了类、继承、组合及接口的概念,并尝试将这些理论知识应用于具体的编程实践。

本来是打算直接学习设计模式,可是看书的时候发现自己关于面向对象这块的基础实在不牢固,所以打算重新捡起C++程序语言设计这本书。从类这块开始再看一遍。

首先对于类,我也做过一些小项目,类似于XX信息管理系统,按照自己以往的编程水平,并没有用到任何的继承、接口这些概念在里面。最多有点感觉,就是封装性做的越好,编程起来就越轻松,后期工作也不会那么累。

现在突然觉得自己那点东西真的还不够,所以我打算看看设计模式这本圣经,打算充充电;话虽如此,但是这本书相当难看懂,要看也就是勉强看懂的水平,但是看完以后一点都不会用。我觉得我这样看下去一点用处都没有,所以我又回头打算重新把C++的知识彻底巩固一下,古人云:温故而知新

继承和组合:

这两个真心差不多,简直就是龙凤胎,唯一区别就是带不带把的。

目前刚刚学习没有仔细的应用过,感觉上来说就是如果要写的新的类如果他和以往的类差不多,只是在某些地方有所不同就要用到继承。

如果是这个类需要用到另外一个类的东西,但是这个类本身不用设计的和别的一样,这就可以应用组合了。

但是其实这两个彼此之间在大多数的时候都是可以替代的,特别是能用组合的地方不要用到继承,因为继承如果使用不好,会导致一个不可控制的庞然大物...这些都是书上写的,实在没啥感觉,自己没做过就是不懂。


接口:

接口这个东西在C++里面表示的好像就是纯虚函数,然后通过继承这个纯虚函数,让这个类族必须强制声明这些所有的虚函数,然后通过这些统一的函数,调用和设计起来就非常的方便,而且最为关键的东西好像就是叫,动态的时候再确定类型是什么。像类啊,继承啊,这些都是静态的,是一开始就已经确定好了的东西,所以你在使用的时候心里就要有数,就比较麻烦。而动态实在运行过程中才知道是什么,那么心里就不需要有数,既然不需要有数那就是比较轻松的一件事情。

自己没有详细的应用过所以不知道是不是这样,目前先这样理解,到时候学会的时候,再回头修改一下。


基本上今天就学习了这两点,还有一些小细节没啥好说的,然后就是开始做C++程序设计语言里面的作业题...题目还真多,还有分等级...1星要做10分钟(还真是10分钟搞定),2星要做3个小时左右,3星要做1天,4-5星要做2-3天左右才行...目前才做完一题1星的...正在攻克3星题目,今天这篇就以题目结尾吧:

最后目的:画一个房子,有2个窗户,1个门

环境:可是是DOS,然后用*来绘制

使用工具:

window类:主要工作就是绘制和返回当前坐标,设置当前坐标

point类:用来表示坐标点

sharp类:这个是基类,作为所有图形的。里面有9个接触点,上下左右中,然后斜的也算上去。

dot,line,rectangle,circle类:图形类,基本上就是用来表示一个图形的。

自己的思路:

继承就不用说了,sharp应该是作为基类被继承,里面有point成员,应该有9个,代表9个接触点。

每个图形里面放着就是自己的关键点,比如line就是两个point

window类的绘制函数,参数应该就是sharp类,然后通过指针来动态确定到底运行的时候是什么类型,根据传入的接触点,绘制相应的图形。


基本上就是这个思路....做吧,反正明天应该能做完,然后再看看情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值