技术门诊(原专家门诊)是51CTO社区品牌栏目,每周邀请一位客座专家,为广大技术网友解答疑问。从热门技术到前沿知识,从技术答疑到职业规划——每期一个主题,站在最新最热的技术前沿为广大网友及程序设计爱好者引航!
2009年8月27日至9月3日,我作为总第128期特约专家做客51CTO技术门诊,以“从C/C++学习谈编程能力的培养与提高”为主题,同广大网友进行了广泛的交流和深入的探讨。
互动主页:http://doctor.51cto.com/develop-140.html
下面选摘一些网友提问及作答如下:
1、我学习C++有两三年了,可是我在编写一些稍复杂的类时,不知道应该以什么标准去划分类的成员函数?
在编写面向对象程序时,如何对问题本身进行抽象是一种非常重要的能力。但是仅仅学习C++语言的语言并不会获得这种能力。当然一个功能模块的实现到底是选择使用类成员函数还是选择使用函数并没有统一的标准,也很难界定什么样的抽象方式是最好的,因此你本身也不必太为困惑。良好的抽象能力对于解决复杂问题非常有利,对于这种能力的培养,我一方面建议多参考一些典型的实例,另一方最好能学习一些UML建模知识,如果能够把UML建模和面向对象编程统一起来,问题抽象的能力势必大为提升。
-----
2、您好,左飞专家。
从事开发工作一年。但觉得现在 JAVA, .NET等都比较有发展。而C,C++有些没落了。我有必要去换一个方向么? 去重点学习和从事其他语言的开发 这样会不会更有前途些?
同时,在编程方面,只是按照需求文档来进行。对自己没有太大提高,如果有些提升?
知道话题比较大,还希望左老师能帮助指点一下。
首先,什么语言并不是很重要,只要自己掌握得牢靠,必然有用武之地。其次,说C、C++没落了之类的话仍然欠妥。统计数据表明,C/C++依然坚挺。至于该不该换个方向就另当别论了,毕竟每个人都情况不尽相同。但在此之前首先要明确自己到底想干什么,想达到什么样的目标,然后再分析下自己如是做是否是同大方向一致,是否有推动作用,然后制定一个可行的计划并配有相应的风险评估,这样的决策应该更为科学些。关于编程能力的提高问题我在本期提供的资料中有所涉及,希望对你有所帮助。
-----
3、C++的一些基础都懂了,封装,继承,多态。都明白了,现在想编个有界面的小程序都不会。那次下了个贪吃蛇源码不算难但看不懂,不是语法不懂,是里面很多东西根本没见过 ! 想提高C++能力,我该怎么做?
关于你所提出的问题,我认为:兴趣是最好的老师,实践是进步的捷径,需求是灵感的源泉 。更详细的建议希望你能看下本期“资料下载”中的内容。或者访问我博客http://baimafujinji.blog.51cto.com阅读:学习C++的一些建议系列文章(1、2、3)。
-----
4、请问:C++编程中如何防止内存溢出问题?
用异常处理就可以轻松解决啦。
-----
5、专家你好
偶是一个业余开发爱好者,学习编程是从PB开始的,后来兴趣越来越浓,最近在努力学习C++,二级C考试成绩优秀
偶是一个学历并不高的人,请教专家
一、如何学习C++?感觉C++范围太广,要学的东西太多,不知道从何入手
二、学习C++是一个漫长的过程,请问,在掌握C++基础知识的前提下,能不能直接学习WIN32编程?学习WINDOWS程序开发,比学习C++有意思的多
请专家帮忙解惑,不胜感激
我想学历不应该是一个影响很大的问题。我在本期资料中也有提及,兴趣其实非常重要。因此我认为你已经具备了必备的条件。我也相信有志者,事竟成。所以希望你也不要妄自菲薄。另外,关于如何学习C++的问题,我建议你看看我的文章http://baimafujinji.blog.51cto.com,阅读:学习C++的一些建议系列文章(1、2、3)。相信会对你有所启发。另外,能否直接学习Win32编程,这个跟是否有C++基础关系不大,即使换一种语言做支持,写Win32程序也是可以的。但是我还是建议你把基础打打牢吧。作为一个程序员,至少得牢牢掌握好一门语言啊,这是最基本的了。呵呵,有些时候太急功近利了反而会适得其反。
----------------------------------------------------
如果你想同我交流,欢迎点击链接http://student.csdn.net/invite.php?u=113322&c=a139a65a1494291d和我成为好友!