2011-01-22 199 views
4

我对C++很陌生,并且对模块化编程功能导向的编程之间的区别是什么。我从来没有做过模块化编程,所以我只是根据定义知道它包含函数的模块。所以有什么区别在顺序(面向功能的语言)和模块化编程之间?提前致谢。 编辑: 我正在读关于C++的OOP.It开始像什么非结构化编程,不是给了一个基本的想法有关结构化编程,比模块化编程最后,OOP函数和模块之间有什么区别?

+1

“模块化编程”是不是在C正式的概念++。你的意思是“面向对象编程”吗? – 2011-01-22 10:27:31

+0

“我只是通过定义知道模块包含函数。” - 我从来没有听说过C++语境中“模块”的定义。谨慎地阐述或解释?你从哪里听到这个消息? – 2011-01-22 10:39:36

回答

2

模块化编程主要是一种在计算机程序中减少耦合的策略,主要通过封装来实现。

在模块化编程之前,通过结构化编程确保代码的本地一致性,但缺乏全局一致性:如果您决定将拼写检查字典作为红黑树实现,那么此实现将被暴露给程序中的其他人,以便程序员能够进行文本渲染等工作,从而能够访问红黑树节点,以便与他们一起做有意义的事情。

当然,这成了地狱,一旦你需要改变你的字典的实现,因为这样你就必须解决其他程序员的代码。

更糟的是,如果实现细节涉及全局变量,那么你必须是非常谨慎的谁改变了他们以什么顺序,或奇怪的错误会出现。

模块化编程应用封装,这一切,通过分离从接口(该程序的其余部分可以用什么)实现(私有的模块)。所以,词典模块可能使一个抽象类型,将只有通过模块的功能,如findWord(word,dictionary)访问。在字典模块上工作的人永远不需要在该模块外面偷看以检查是否有人可能正在使用实现细节。

2

Fahad,

它们都是构建代码的方式。如果你对函数式编程感兴趣并想更好地理解它,我会看看lisp。 C++不是真正的函数导向,因为每个函数都应该返回一个值,但C++函数可以返回void(使其成为过程而不是函数),所以它不是一个真正的函数式编程语言。

“我从来没有做过的模块化编程,所以我只知道通过它包含的功能定义模块”。模块比功能更高。

这是一个好的开始。把一个函数想象成一个工作单元,当你有几个函数可以以某种方式进行分组时,你可以将它们放入一个模块中。所以,string.h有很多用于处理字符串的函数,但是你只需包含头文件,并且你可以直接访问所有这些函数。然后,您可以在其他项目中重复使用这些模块,因为您之前已经使用过这些模块,并且已经(我假设)进行了调试和测试,并阻止人们重新发明轮子。关键是要从累积的经验中受益。

我建议你认为你想,写了一些功能,想想你想如何组织其他开发人员使用的代码项目。

希望这是一些对你有用的。

相关问题