面向对象课程设计终于完成了,我也终于学会了使用VC++。真有一种如释重负的感觉。这对我来说这应该算是一个小小的里程碑吧。在此记录一下。

  对VC呢,我只能说它的确是一块够硬的骨头。我从大二开始就在想把它啃掉,可是一直也没有把时间真正地用在它身上。编译原理、离散数学、操作系统……门门都是很重要的专业课,我一门也不想放弃。直到这个学期,面向对象课程设计被要求只能用VC做,看来是不能再拖下去了。只有放弃一些课程了。毕竟学VC还是比较费时间的。

  大二的数据结构课程设计就要求用VC做,我也是从那时开始啃VC这块骨头的。那时我只学过C语言,还没学C++,得知Charles Petzold写的Programming Windows就是给我这只会C的人看的,我便开始硬着头皮在电脑上看电子版。但看了一半我就看不下去了。因为我发现自己依然还是不会用VC,而且面对VC我只知道可以用API调用来写界面,完全不懂什么MFC。因而我只能用API写数据结构课程设计的界面。在极其痛苦地写出一个界面的框架后,我就彻底放弃了。因为我用API写界面完全感觉不到编程的乐趣,有的只是痛苦。我想不通为什么别人学习VC为什么能那么容易就搞定了。后来得知他们是学的MFC,我便开始看MFC的内容。结果学得一头雾水。这个类,那个类,这个继承那个,那个又继承这个。都什么乱七八糟的呀。我不得不再次停止。

  暑假,某些其它的原因促使我不得不开始学习C++。对类的理解让我开始了解OO的设计思想。但我还是不清楚类的真正用处。我不明白为什么面向对象的思想就适合对问题的分析与设计,用面向过程的方法不是也挺直观的吗。而且C用很简单的几个语句就能完成的任务,交给C++用OO的方法编码就会增加一些明显多余的操作。这到底是为什么呢?

  直到这个学期,我才找到这些问题的答案。我重新开始学习MFC。突然发现它的结构相当清晰,很好理解。对VC的学习一下子变得容易起来。在做OO课程设计时,对类的大量使用也让我体会到了OO的好处,我终明白C++中增加的那些“多余”的操作是为了什么。在对一个系统进行建模时,结构的清晰才是最重要的。这对整个系统的维护及更改都是有益的。如果采用面向过程的设计,在性能方面的确会更好一些,但却使得整个系统的更改变得困难。对于复杂的系统如果用采用面向过程的方法做,编码时也不是很直观,更别说维护了。这次课程设计的编码过程中,我最大的感觉就是:用面向对象的方法编程就象是在做一幅三维立体图形,而以前用面向过程的方法编程就象是在做一幅平面图形。OO的设计就象我们小时候搭积木一样,各部分做好了以后再合起来就是一个完整的模型了。OO的思想果然不错呀。

  回头再看我学习VC的过程,走了一大截弯路。现在想想,我觉得对VC的学习还是应该从C++入手,之后再学MFC。如果想要深入学习Windows程序设计,再去学习API编程。初学VC还是不要从API入手比较好。

sumless

VC++, OO ME相关推荐

  1. 机器学习可行性与VC dimension

    机器学习可行性 在银行评估贷款申请人的授信请求前,会进行风险评估.符合申请则通过,反之驳回.长时间的数据和申请使得银行从中找到了一些规律并开始learning,所以风险评估就是一个learning的过 ...

  2. BCB vs. VC++

    http://www.blog.sh/user1/3049/archives/2005/17811.html 看过这篇文章,然后又看了看BCB的一个HelloWorld教程,才明白为什么有那么多人在骂 ...

  3. VC编程规范(转自http://www.zhongguoidc.com/htm_data/69/0608/28000.html)

    VC编程规范-程序员应该这样写代码 王者归来VC编程规范-程序员应该这样写代码 基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行. 1.2 打算干什么,要简单,直接了当,代 ...

  4. VC串口通信编程-2

    VC串口通信编程 (2009-07-08 13:48:40) 转载▼ Win32串口编程(转:韩耀旭) 在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信 ...

  5. VC中基于 Windows 的精确定时

    方式一:VC中的WM_TIMER消息映射能进行简单的时间控制.首先调用函数SetTimer()设置定时 间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔.然后在应用程序中增 ...

  6. VC manifest

    manifest原理和用途 dll是被动态调用的,所以会被若干个程序共享使用的 但是如果dll在应用程序不知道的情况下升级了.或是被另一个程序更改了,就可能会出现问题,即"DLL Hell& ...

  7. VC运行时库(/MD、/MT等)

    VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程DLL(/MD).多线程调试DLL(/MDd).单线程(/ML).单线程调试( ...

  8. vc picture控件载入背景图,随控件大小改变

    在mfc里,想要在Picture控件中载入一张图片有两种方法:静态的和动态的.静态的方法就是图片先载入资源(.rc)文件中,拥有一个唯一的ID:动态的方法就是制定图片的路径名即可. 当然这样的方法网上 ...

  9. VC开发Windows客户端软件之旅——前言

    从第一次拖着行李入京找活,至今已工作若干年了.这些年一直追逐自己的梦想,跑过三个城市,换了三份工作,认识了很多业内的朋友.和朋友们闲聊时,发现很多人都已经不再做客户端软件了.有的转去做管理,有的转去做 ...

最新文章

  1. python日志输出到屏幕,python日志写入文件
  2. torch_geometric笔记:nn. graclus (图点分类)
  3. 设计微服务架构需要掌握的基础知识
  4. php数组有没有类似next方法,PHP 数组current跟next用法
  5. [CB]将窗体从属于主窗体
  6. Photoshop: 机关单位公章
  7. 素数就是不能再进行等分的数。比如2,3,5,7,11,等 9=3*3说明它可以等分,因而不是素数 我们国家在1949年建国,如果只给你 1 9 4 9 这4个数字卡片, 可以随意摆放他们的先后顺序(但
  8. Performance Engineering of Software Systems (四) ——工具使用
  9. 华为USB线刷工具的使用
  10. 基于A*启发式搜索解决迷宫问题
  11. rms 公式 有效值_为什麼均方根值(RMS)比平均值表达好一些?
  12. 雅虎邮箱(yahoo):应用程序专用密码登录
  13. 使用百度地图API进行Android地图应用开发(Eclipse)
  14. BiTree T 和 Bitree T 和 BitNode *T 和 T-lchild
  15. Swift版本之大雪纷飞
  16. Android shell 授权文件执行权限
  17. JAVA的sdn控制器,RG-ONC锐捷智能开放网络SDN控制器
  18. 暗影精灵5风扇怎么调_惠普HP暗影精灵5 Super游戏主机改装猫头鹰风扇攻略
  19. Effective Java---No.7 避免使用终结方法(稀里糊涂)
  20. 帮我写一个X波段小型化带通滤波器开题报告

热门文章

  1. 潭州课堂25班:Ph201805201 MySQL第一课 (课堂笔记)
  2. MySQL索引之全文索引(FULLTEXT)缺陷
  3. 人工智能和智能农业的未来发展趋势:基于人工智能的智能农业解决方案
  4. topaz全家桶_看看你还缺哪个?摄影后期必备插件全家桶齐了!AI视频无损放大...
  5. 如何高质量产出与进步
  6. mapstruct使用详解
  7. 首件检测在SMT贴片加工中有什么意义?
  8. canal网络添加黑洞路由
  9. 唯品会盈利十年:韧性有余,冲劲不足
  10. 如何使用Floccus + 坚果云管理自己的浏览器书签