【问题标题】:Difference between OO and Grouped Functions?OO和分组函数之间的区别?
【发布时间】:2011-09-16 12:59:03
【问题描述】:

除了非常简单的理论之外,我对面向对象的编程特性一无所知,所以我希望有人能够告诉我使用对象与像这样的分组函数有何不同:

void parent(int a, int b, int c, int d)
{
if(a == ?)
{
    void child(int a, int b)
    {
        etc
    }
}

if(b == ?)
{
    void child(int c, int d)
    {
        etc
    }
}

if(c == ?)
{
    void child(int c, int b, int a)
    {
        etc
    }
}
}

除了向函数传递/从函数传递冲突的数据类型(在 C 中,我目前的知识基于此)和访问特定的代码模块稍微冗长一些之外,还有什么区别?

希望我已经把我的问题说清楚了,同时在这个过程中不会显得太愚蠢。 :)

谢谢。

【问题讨论】:

  • 如果这是您的问题,您可以在没有语言支持的情况下模拟面向对象。当然,必要的样板代码使这在实践中变得相当不切实际(尽管并非完全没有头脑 - 请参阅用例如 C 或相当多的文件系统编写的面向对象语言的实现)。无论如何,您的示例似乎没有多大意义——截至目前,它显示的是词法嵌套函数,而不是任何与 OO 相关的函数。

标签: oop function


【解决方案1】:

函数式编程和面向对象编程概念的主要区别在于“谁在做这项工作?”

在函数式编程中,您拥有对数据结构执行操作的方法。

在面向对象编程中,这个想法是对象本身在工作。

在大多数情况下,OOP 可以让您更直观地抽象问题,并允许您设计更复杂的结构,同时将角色分配给作为玩家的对象。

当然,这只是一堆函数相互调用的代码。只是概念不同。

【讨论】:

    【解决方案2】:

    对象可以保持内部状态;他们可以公开该状态(通过访问器)或保持完全私有(作为私有变量)。维护任何其他执行单元都无法访问的状态的能力是您所描述的内容与 OOP 之间的主要区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 2014-06-08
      相关资源
      最近更新 更多