怎样学好C++

我学计算机已经两年了,但是最终没有找到编程的技巧和激情,高手们,我该怎样学好C++?... 我学计算机已经两年了,但是最终没有找到编程的技巧和激情,高手们,我该怎样学好C++? 展开
 我来答
股侠AAA
2010-12-25 · TA获得超过4096个赞
知道大有可为答主
回答量:2481
采纳率:33%
帮助的人:1822万
展开全部
解结构化编程思维。
为什么呢,我前面有文章说过,软件语言的发展过程,就是一个数据私有化的过程,大
型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性。
这是现代工程化开发的核心和灵魂。
因此,利用C 这门语言入门,借此理解结构化开发思维,可以说是个很方便的路子。
因为C 的函数,本来就是为重用做准备的。同时,全局变量和cpp 内部私有变量的差别,
其使用原则,这些都能学到很多结构化开发思维。
3、开始学习C++
C++不难学的,很多人觉得C++难学,其实是因为它在C 之外,又提供了很多的概念,
尤其是对象,很难以理解。
不过我经过这么多年,把这个问题反而看淡了,我认为面向对象相对面向过程,仅仅是
结构化程序设计的一个具体体现,是编译器提供手段,强迫程序员必须遵循数据私有化的一
个实例,C++和C 的关系,最核心的莫过于此。
IT 学生解惑真经
CSDN 学生大本营http://student.csdn.net 出品
现在我们回到C 再看看,如果我们把一个全局变量,写到一个cpp 里面,并且在对应
的h 文件中不声明,它是不是就只有这个模块可以使用?它是不是就是私有变量,以这个理
解,类能明白了吗?
4、学习C++的深入技巧
C++在类的基础上,经过这么多年的发展,其实提供了很多深入的概念,看起来很复杂,
其实我看也很简单。比如模板,我的理解就是“类的类”,大家说是不是?
既然模板理解了,STL,ATL 这些,静态模板库,动态模板库,还难理解吗?就是一大
堆类的类,可以借此实现很多应用中需要的类,不需要程序员再自己写而已。
ok,STL 都理解了,泛型开发还难吗?所谓泛型开发,其实就是我做一个模板,来定义
一套算法规则,但是呢,我希望这个算法规则,能进一步抽象,对核心数据类型不要限死,
我把各种数据套进去,都可以用,这样,仅算法这部分,我不需要重写了。你想想是不是这
个道理?
学到这里,C++和C,其实已经差不多了。再学语言,就是求全责备,过于钻牛角尖了。
5、学习应用开发
前面说了,学习语言,目的不是让别人认为自己是专家,是为了写程序赚钱。因此,语
言学完,要学习应用开发。
什么叫应用开发呢,我会一门语言,但是,客户不懂,客户说的很直接,在Windows
下给我写个程序,我要什么什么功能。为啥Windows 呢?因为我习惯。
OK,很多时候,应用开发要尊重客户习惯,一般说来,语言这个东东,还是要结合具
体平台的开发,才能开发出有意义的应用程序卖钱。那么,一般说来,客户端是Windows
系统,服务器是Linux,这些都是行业习惯,嵌入式不好说,各种平台都有,Palm,S60,Linux,
WinCE,等等。要根据自己的目标客户来定。
当我们选定目标平台后,有一个问题,选什么语言,很多时候,学生和商用程序员差别
就在这里,学生一般没得选,自己会啥就用啥呗,企业里的程序员不会,要先评估需求,看
哪个语言更合适,不会的语言,要去学。
ok,假定我们选了C 和C++,那么,我们需要选择开发平台,Windows 下不用说了,VC,
这是最好用的,Linux 下呢,gcc,其他的也差不多。
假如我们开发VC,并且使用C++,这个时候,才需要考虑学习MFC 了,因为这是微
软的标准类库,至少Windows 平台下,它最权威,你看见没有,我们从学习开始,走了多
少步,才走到MFC?是不是MFC 不是学习C++上来就必须学的?
6、学习MFC
IT 学生解惑真经
CSDN 学生大本营http://student.csdn.net 出品
学习MFC,很多人一上来就开始看其体系架构,看得一头雾水,那个模块关系依赖图,
我到现在都看不懂。
呵呵,其实不是啦,和学语言一样,我们学MFC 的目的,也不是希望成为MFC 的专
家,而是要利用MFC 开发Windows 应用程序,为我们赚钱。看见没?MFC 是手段,不是
目的,目的是开发Windows 程序。
其实Windows 下,有一套很标准的C 接口,叫Win32API,这个才是Windows 的标准
编程核心,因此,学习MFC,真实的目的是理解Windows 程序开发,建议可以先学习
Win32API,看来我们又回到C 了哈,呵呵。刚开始学C 有用吧?
7、Win32API
其实Win32APi 不难学的,因为虽然它很大,有很多接口,但不是必须的,我们真正做
个简单的Windows 应用,其实用不到这么多的。做个简单的Dialog,然后实现个功能,你
遇到的接口函数,其实绝大多数,就是以后常用的了。把常用的记熟练,就ok 了。
关键是,这个时候要通过WinMain 方式,去理解Windows 的事件机制,这是核心,其
实说起来简单得要死。就是以前你的程序,由于没有系统支撑,很多事必须自己做,比如检
查鼠标和键盘输入,你需要写个死循环,自己不断去看,而Windows 说,这些事你不要做
了,我来做比你好。你没事就玩去吧,我把和你相关的消息放到一个队列里,就是你的事件
队列,你自己没事去找找看,有没有新消息来,有就做事,没事就玩好了。很简单是不?
当然,Windows 是多任务操作系统,有时候,我们的逻辑需要并发一些功能,比如说,
我在等鼠标键盘消息的时候,需要再看看打印机准备好了没有,这里就需要理解并行计算了,
这和语言无关,和操作系统无关,这是另外一个话题,这里不多说了,你可以自己找找线程
开发的相关资料看。
看见没,为了学习好Windows 编程,其实我们不仅仅需要学习语言,还要学习操作系
统,并行计算原理,内存原理,可能有时候还需要学习网络通信,等很多知识,所以说,单
凭学习语言,是成不了商用程序员的,一个合格的程序员,需要理解的东西,太多了,要广
为学习。
当我们把Win32API,以及基本的窗口化程序设计理解了,就可以回到MFC 继续学习
了。是不是有点递归返回的意思?呵呵。
8、回到MFC
原来学MFC 很难的,因为其封装了太多细节,很难理解透彻。不过还好,我们有侯老
师的深入浅出MFC,去找本来看看,如何从Win32API 的纯C 编程,改变为MFC 的C++
方式,看这个最快,基本上前6 章看完,已经会了,这里我就不多说了。
9、COM
IT 学生解惑真经
CSDN 学生大本营http://student.csdn.net 出品
COM、COM、COM,我最头疼的COM,呵呵。
COM 就是一种远程过程调用,即你请求的代码是在另外一个进程中运行的,通过某种
通信协议来回传递参数和结果。仅此而已。DCOM 进了一步,服务者可以在另外一台计算
机上。在公司开发中,大家可能各做一块,如果要合作,Windows 下建议多使用COM。( 我
个人喜欢socket 通信哈)
简单说,COM 提供了一种机制,可以跨进程通信,甚至跨机器通信。不过,为了传递
各种类型的参数,COM 可谓是无所不用其极,它发明了智能指针,可以指向任何类型的数
据,同时,为了实现智能指针,它使用了大量的C++泛型设计,看见没,C++的基本功就起
作用了,还用到了ATL。
学习COM,要注意一个接口的概念。由于开发者是不同的人,调用程序和服务程序,
可能不是同一种语言,OK,不能简单提供一个C 或C++的.h 文件来解答接口,因此,COM
提供了标准接口,使用者在程序内部,以查询方式获得可用接口,进而以接口ID 调用。很
累人的。
学会了COM,就可以多理解一点ActiveX 了,那么再学习一点dll(动态链接库)的知
识,我们就已经可以写OCX 控件了。一般说来,OCX 控件是个很好的设计,哪都能用,一
个软件的模块,最理想是开发成这个样子,比exe 灵活。
10、没了。
按少林派说法,学了上述这些,其实已经算打过18 铜人阵了,已经可以下山助明主,
扫奸佞,扭转乾坤,解万民于倒悬了。
不过,关键是你通过上面的过程,是不是已经学会了学习的方法,再遇到新的东东,是
不是已经不难学了?这大概就是武学中的悟性了,有了这个根基,以后只要慢慢修炼,估计
20 年后,可与天下英雄一较短长了。
呵呵,你说是不是?
呼呼,好累。
baoju0211
2010-12-24
知道答主
回答量:46
采纳率:0%
帮助的人:0
展开全部
多做看别人的代码呀
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落枫秋痕
2010-12-24 · TA获得超过499个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:187万
展开全部
具备基础知识后:
读代码
抄代码
改代码
写代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式