分类: C/C++
2012-01-12 16:38:29
Heartwork2012-01-22 00:42:23
楼主的oo引发了很多讨论哈,我再凑一下热闹。
做设计其实就是搭积木,你手中的积木决定了设计的质量。
从这个角度讲,学习一种高级语言对于使用低级语言(比如C/ASM)是很有好处的。因为高级语言提供了丰富的语言特性、函数库、中间件来完成许多general的功能(积木)。
更重要的一点是,即使你有一天用到了不具备这些积木的低级语言,它至少会告诉你哪些high level的概念在实现上是具有可行性的,显然,设计中使用这些概念可以降低项目的风险。
它们可以认为是软件工程理论中的最佳实践。
这么说来,学习任何一门高级语言多多少少都会提高自己的设计水平,只不过楼主从实用主义角度选择了C++(也就是老板选的)
captivated2012-01-21 21:13:39
对C++的一些技术和认识可以让程序员对C语言本身的认识更深入。对于OO封装的理解也有助于对C模块封装的理解 -- 比如,一个类就是一个完整的封装,如果C语言的某个.c文件的实现主要围绕某个数据结构打转,实际上完全可以把这个.c文件理解成一个C++类。
不管怎么说OO,对OO和设计模式有一定了解还是比较好的。
只不过如果太过专注C++那些奇淫技巧就不好了。真的学不完。我觉得够用就好, -- 够用的意思是大约五到十本C++书籍常放手边备用还是OK的,最基本的一本是《C++ Primer》, 还有《Effective C++》, 《C++ templates》, 《Inside the C++ Object Model》, 还要STL标准库参考书等等...
而C就比较返璞归真一些... 适当的汇编参考,《深入理解计算机系统》,对于编译和链接的理解,对目标文件格式的理解,对于共享库的理解,对于像X86这样的CPU的段式管理(已经没什么用但必须要经过的)和内存分页管理(当前主流内存管理方式)的了解,对内核的