如何学习C ++以进行调试

时间:2009-10-28 11:11:25

标签: c++

一些背景知识:我的工作涉及维护一个大型多线程多进程C ++ / C#应用程序,因此我经常负责理解访问冲突,内存泄漏,堆中断问题等。

我非常喜欢这个,而且我已经对各种低级概念有了很好的理解,但问题是我不用C ++编程,除了用于维护之外我真的不打算。

我的意思是,如果我需要开发一些东西,那么我在公司工作的最佳选择是C#(更多开发人员,其他应用程序也在C#意味着更好的互操作),所以不是我不喜欢用C ++编写的程序,只要我用C ++编程,它就会纯粹用于学习C ++,而所以我希望从中获得最大的收益

我的观点是“自学C ++”等等并不是很合适,因为他们过于专注于完成任务 - 通常有许多做事方式,所以他们倾向于选择一种方法,所以当我遇到了一些代码,这些代码以不同的方式填充我的东西(例如,一本书教授MFC,然后我会得到一些ATL代码,这本书甚至没有教会我ATL和MFC是什么,更不用说如何认识到我所看到的是不同的!)

我真的很想自己教C ++,强调理解其他人的代码

6 个答案:

答案 0 :(得分:5)

IMHO C ++特别是一种你无法通过阅读“自学”书来学习的语言,你真的需要有几个来源,其中一个实际上就是看别人的代码。

我建议通过Scott Meyers阅读有效的C ++和更有效的C ++来学习使用C ++进行编程时的一些陷阱,这是一种很好的学习方式,尤其是当你查看人们的代码时。另一个可以提供帮助的网站是gotw,也有一些很好的信息。

答案 1 :(得分:4)

由于您永远不会从头开始创建C ++程序,我建议您缩小视野范围,只查看您将支持的应用程序,专注于您不完全理解的内容并逐一解决它们。

我发现http://www.parashift.com/c++-faq-lite/是C ++的一个很好的基本资源。在处理MFC或ATL等特定技术时,请事先做一些关于哪本书最适合您的研究。我最喜欢的方法:咖啡浓咖啡,舒适的椅子以及Barnes& amp;值得一看。专注于在线搜索也足够了。

没有知识和掌握的捷径,但通过限制你的注意力,你可以省去一些浪费的精力。一般来说,技术越复杂 - 或者设计越复杂 - 你需要知道修复它的次数越多。这是生活中的事实!

答案 2 :(得分:1)

C++ FAQ是一个很好的信息来源。

答案 3 :(得分:1)

尽管有其他人的答案,我认为你的问题不会主要与语言有关。当然,您可以查看标准或Stroustrup,但这些只会教您语言结构。

我想,你将无法学习的大部分内容都是特定于Windows的,无论是什么样的特定用途。

请阅读stroustrup和其他语言指南,但要准备深入研究您正在使用的库和系统的文档。

答案 4 :(得分:0)

听起来你真的需要一份C ++标准。 (ISO / IEC 14882 - 在线免费提供草稿形式。最终版本花费几美元)

当然,Stroustrup's book也是一个不错的选择。但总的来说,专注于描述语言的材料,而不是像你说的那样“如何完成任务”。

答案 5 :(得分:0)

如果您必须维护在很大程度上使用MFC和/或ATL的C ++代码,那么了解它如何工作以便您能够正确维护代码的最佳方法是编写使用MFC的小型应用程序和/或ATL,以便您在运行代码时了解hwta。通过Stroustrup阅读一本书无助于您理解MFC和/或ATL。你应该关注的另一件事是COM是如何工作的,因为ATL基本上是模板,宏等的框架,这使得使用COM更容易。

希望有所帮助。

相关问题