首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C语言到面向对象编程的最佳学习途径是什么?

从C语言到面向对象编程的最佳学习途径是什么?
EN

Stack Overflow用户
提问于 2010-02-18 15:17:44
回答 16查看 7K关注 0票数 12

如果你用C语言编写了一些程序,那么学习OOP的最佳途径是什么?

我的意图是首先采取自然的飞跃和“一加”,并采取Stroustrup。但是,既然我拿到了老贝特朗·迈耶的OOSC2和附录第1135页"..according to Donald Knuth“中的内容,用C++编程就会让Edsger Dijkstra感到身体不适,而Meyer本人则说"..that C++并不是理想的OOP语言……”

那么这个呢--对C++关于这个问题的评论:对C++的批判

如果我的意图是对现代面向对象语言有很深的理解,或者在C++中忽略了这个主题的优点,那么我应该跳过C#和或Java吗?

嗯,我知道这是一种讨论--但是我把它标记为wiki,你的答案对我来说在未来的选择中可能意味着很多。

EN

回答 16

Stack Overflow用户

发布于 2010-02-18 15:21:11

C++不仅仅是一种面向对象的语言。它是多范式的(过程,面向对象,功能,通用.)

所以如果你只想学OOP,也许这不是最好的选择。

票数 5
EN

Stack Overflow用户

发布于 2010-02-18 15:21:33

我建议C#。语法是相似的,但它的不同足以防止您重新陷入旧的C习惯。使用C++时,我总是发现自己正在编写C,偶尔也会添加一些对象。

票数 3
EN

Stack Overflow用户

发布于 2010-02-18 15:26:35

是。如果你的意图是“对现代面向对象语言有着深刻的理解”,那么就选择一种现代的面向对象语言。C#绝对符合“现代”的标准,并以自己是OOP而自豪。类似Smalltalk的语言可能是面向对象语言,但它不那么现代。你总能学到这两样东西。

至于C++,它几乎不是一种OOP语言。学习C++有很多好的和有效的理由,但是如果您只对OOP感兴趣的话,就不会了。

今天,C++的特点不是OOP,而是泛型编程等特性,在某种程度上受到函数语言的启发。

可以从C++中学到许多有用的经验教训。其中有几个是:

  • 一些非常好的管理资源生命周期的技术,像C#和Java这样的“现代”语言可以从中学到很多东西。
  • 通用编程范例,以及它使OOP完全没有意义的程度。从特性和概念,而不是它们实现的接口,以及对真正可重用的非会员函数的偏好来考虑类型的整个想法,对于那些仍然认为OOP是编程的圣杯的人来说是很有趣的。

如果你问你是否应该学习C++,我会说是的(和其他5-8种语言一样)。C++在任何方面都不是“特殊”的。这是程序员可以从学习中获益的许多语言之一)。

如果您想知道C++是否会是OOP的一个很好的介绍,我会说NO。这就是为什么值得学习的原因。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2289642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档