VC++, OO ME
面向对象课程设计终于完成了,我也终于学会了使用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相关推荐
- 机器学习可行性与VC dimension
机器学习可行性 在银行评估贷款申请人的授信请求前,会进行风险评估.符合申请则通过,反之驳回.长时间的数据和申请使得银行从中找到了一些规律并开始learning,所以风险评估就是一个learning的过 ...
- BCB vs. VC++
http://www.blog.sh/user1/3049/archives/2005/17811.html 看过这篇文章,然后又看了看BCB的一个HelloWorld教程,才明白为什么有那么多人在骂 ...
- VC编程规范(转自http://www.zhongguoidc.com/htm_data/69/0608/28000.html)
VC编程规范-程序员应该这样写代码 王者归来VC编程规范-程序员应该这样写代码 基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行. 1.2 打算干什么,要简单,直接了当,代 ...
- VC串口通信编程-2
VC串口通信编程 (2009-07-08 13:48:40) 转载▼ Win32串口编程(转:韩耀旭) 在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信 ...
- VC中基于 Windows 的精确定时
方式一:VC中的WM_TIMER消息映射能进行简单的时间控制.首先调用函数SetTimer()设置定时 间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔.然后在应用程序中增 ...
- VC manifest
manifest原理和用途 dll是被动态调用的,所以会被若干个程序共享使用的 但是如果dll在应用程序不知道的情况下升级了.或是被另一个程序更改了,就可能会出现问题,即"DLL Hell& ...
- VC运行时库(/MD、/MT等)
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程DLL(/MD).多线程调试DLL(/MDd).单线程(/ML).单线程调试( ...
- vc picture控件载入背景图,随控件大小改变
在mfc里,想要在Picture控件中载入一张图片有两种方法:静态的和动态的.静态的方法就是图片先载入资源(.rc)文件中,拥有一个唯一的ID:动态的方法就是制定图片的路径名即可. 当然这样的方法网上 ...
- VC开发Windows客户端软件之旅——前言
从第一次拖着行李入京找活,至今已工作若干年了.这些年一直追逐自己的梦想,跑过三个城市,换了三份工作,认识了很多业内的朋友.和朋友们闲聊时,发现很多人都已经不再做客户端软件了.有的转去做管理,有的转去做 ...
最新文章
- python日志输出到屏幕,python日志写入文件
- torch_geometric笔记:nn. graclus (图点分类)
- 设计微服务架构需要掌握的基础知识
- php数组有没有类似next方法,PHP 数组current跟next用法
- [CB]将窗体从属于主窗体
- Photoshop: 机关单位公章
- 素数就是不能再进行等分的数。比如2,3,5,7,11,等 9=3*3说明它可以等分,因而不是素数 我们国家在1949年建国,如果只给你 1 9 4 9 这4个数字卡片, 可以随意摆放他们的先后顺序(但
- Performance Engineering of Software Systems (四) ——工具使用
- 华为USB线刷工具的使用
- 基于A*启发式搜索解决迷宫问题
- rms 公式 有效值_为什麼均方根值(RMS)比平均值表达好一些?
- 雅虎邮箱(yahoo):应用程序专用密码登录
- 使用百度地图API进行Android地图应用开发(Eclipse)
- BiTree T 和 Bitree T 和 BitNode *T 和 T-lchild
- Swift版本之大雪纷飞
- Android shell 授权文件执行权限
- JAVA的sdn控制器,RG-ONC锐捷智能开放网络SDN控制器
- 暗影精灵5风扇怎么调_惠普HP暗影精灵5 Super游戏主机改装猫头鹰风扇攻略
- Effective Java---No.7 避免使用终结方法(稀里糊涂)
- 帮我写一个X波段小型化带通滤波器开题报告