为什么使用C++
http://tech.ddvip.com 2007年09月13日 社区交流
内容摘要:本文给出了我们需要使用C++的原因和理由,您觉得这些理由充分吗?文中针对C++的贬低和相应对C语言的抬高给出的原因,您觉得是正如作者所说这样的吗?
现实问题
人们可能会说C++很容易会用错,而相反,C通常更容易管理和操控。一个中等水平的C++程序员可能会写出一大串联系紧密的类,而很快这些类就会变成一堆垃圾。但这实际上只是个别情况。一方面,在任何面向对象语言中都会经常发生这样的事情。总是有一些程序员,他们敢于在类之上再定义类,而他们甚至还不知道什么是HAS-A和IS-A;他们学习了所有定义一个类和从其他类继承一个类的语法,他们就觉得掌握了OOP的本质。另一方面,为什么问题会出现在C++中,是因为C++有很多阻止设计的复杂之处,是因为C++如此灵活,以至于每个用C++解决的问题都有很多可选的解决方案(考虑所有的GUI类库),以至于权衡选择哪种解决方案就成了艰巨的工作。C++的附属复杂性是一个历史遗留问题,C++0X做了多番努力试图摆脱这个问题;关于设计的灵活性并不是一件坏事——如果你考虑到它可以帮助好的设计师做出好的设计;如果有人谴责它,因为这样浪费了自己很多脑细胞,那这只是个人问题,而不是语言问题,或许这样的人就不应该负责做设计。如果你担心你的C++编程伙伴因为受这些高水平特征的诱惑而使得你的工程代码一团遭,那么,或许你应该建立一个编码标准并强制执行它(或者你可以遵循the collective wisdom,或者坚持C规范,或者带有C++类的C规范),而不是因为存在风险而退缩放弃(政策可以避免风险),因为如果不这样做,你将再也不能接触所有C++类库。
另一方面,存在着最重要的心理上问题——如果一个语言中存在一个稀奇古怪的性质,那么最终就会有人发现它,然后人们就会被它吸引,这就会吸引那些本来在努力做一些有用的事的人的精力(有点像墨菲法则),不要去打扰那些正在做完美解决方案的人。人们天生就会被一些稀有资源吸引。结论就是:诀窍和稀奇古怪的性质就是稀有资源,所以会引起人们的注意,更不必说掌握一种诀窍可以使人感觉自己与众不同。糟糕的是,即使是没有价值的诀窍也会引起人们的强烈注意。
来源:51CTO.com 作者:刘未鹏 责编:豆豆技术应用