【问题标题】:OOP style, classes, library of functions [closed]OOP 风格、类、函数库
【发布时间】:2013-12-15 01:33:38
【问题描述】:

我有一个包含多个类的项目。我在这个项目中添加了几个由其中一个类使用的函数,命名为MainClass。我将所有这些函数放在一个文件stuff.h 中。为了使用这些函数,我在类MainClass 的实现开头包含了stuff.h 文件。我想知道这是否是一种好的编程风格,或者创建一个新类并将我的函数添加到这个类中是否会更好。然后我在MainClass中实例化这个类。

【问题讨论】:

    标签: c++ oop coding-style


    【解决方案1】:

    风格不太好。从事实开始,标头实际上并不打算包含真正的代码,而是在其他地方定义的事物的声明。

    如果您的“外部”函数仅由 MainClass 使用,为什么不使用类方法呢?甚至可能是私人的,所以它们只在课堂上可见?尽可能把事情封装起来。如果您尝试使用 C++,请尽量不要使用“普通 C 函数”。是不同的语言。如果您绝对需要简单的例程,请改用名称空间。但请尽量将代码保存在模块 (.cpp) 中,而不是标题中。

    关于其他类。这取决于您是否知道为什么需要其他课程。如果你不知道为什么,你就不需要它们。 BTW OOP 并不总是“最好的”方法,尤其是在继承和组合之间的平衡方面。您应该了解您真正想要达到的目标以选择合适的技术。

    确实,您需要一本好的 C++ 书籍。关于项目组成、编译过程、翻译单元的章节,您将了解其背后的逻辑。这个问答网站无法向您解释一切。给点分数吧。

    【讨论】:

    • 所以我只是将声明放入 stuff.h 并将实现放入 stuff.cpp 文件中。把这些函数放在一个单独的类中是个坏主意吗?谢谢。
    • 如果只有 MainClass 需要一些东西,为什么它不能成为 MainClass 的一部分?好的,如果您看到组件逻辑,则启动新的类模块,比如说 UtilityClass.cpp,在类或命名空间内实现代码,并通过包含 MainClass 可以看到其接口来添加 UtilityClass.h。这是关于 C++ 项目的一般设计。读书,你无法避免它:-)。
    • 从您的回答看来,将这些函数添加到 MainClass 会更好。经过反思,这不是一个坏主意。一个类应该包含的函数数量有限制吗?
    • 从技术上讲,你不应该在这里遇到任何限制,但从另一方面来说,你需要保持秩序。所以从另一边你应该在这里保持平衡。如果 MainClass 内部的函数太多,考虑将它们分组并形成其他接口(类或命名空间)。通常建议不要有超过 2000 行的模块,但大多数情况下它非常主观。
    • 你可以看到这个问题被搁置了。不是因为它太糟糕,而是因为它具有挑衅性。
    【解决方案2】:

    我认为最好创建一个新类,或者创建几个按函数使用方式不同排序的新类。这更符合经典的面向对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多