c++ - 在全局函数中实现,或者在全局函数包装的类中实现

标签 c++ oop static namespaces global

我必须根据预定义的签名实现一组 60 个函数。它们必须是全局函数,而不是某些类的成员函数。当我实现它们时,我使用了一组由第 3 方提供的做得很好的类。

我对大多数功能的实现都很短,大约 5-10 行,主要处理对第 3 方类的不同访问。对于一些更复杂的函数,我创建了几个新类来处理所有复杂的东西,我也在函数中使用它们。所有状态信息都存储在我和第 3 方类的静态成员中,因此我不必创建全局变量。

问题:如果我实现一个具有 60 个成员函数的大类,并在那里完成所有实现(现在在全局函数中),会不会更好?而我必须编写的每个函数都将调用类中相应的成员函数。

最佳答案

All the state information is stored in the static members of my and 3rd party's classes, so I don't have to create global variables.

这是重点。不,绝对不应该把它们放到类里面。类是用来创建对象的。在您的情况下,您会将它们用作数据和函数的范围。但这是命名空间已经更好地解决的问题:

namespace stuff {
    ... 60 functions ...
    namespace baz {
        ... if you want, you can have nested namespaces, to ...
        ... categorize the functions ...
    }

    namespace data {
        ... you can put data into an extra namespace if you want ...
    }
}

创建仅由静态成员组成的类不是一个好主意。

关于c++ - 在全局函数中实现,或者在全局函数包装的类中实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487243/

相关文章:

c++ - 如何防止 XAML UI 元素在失去焦点时修改其外观

PHP (OOP) - 从调用的函数中获取对象

java - 我应该使用静态方法还是实例方法?

class - 方法未定义(类型没有方法)

javascript oop私有(private)方法访问公共(public)属性

c# - 在 C# 中是否有可继承静态泛型类的替代方案?

无法破译输出

c++ - 获取反转的 boost 图的拷贝

c++ - 我们可以在类声明中声明类类型的指针吗?

c++ - 转向 C++ 的 Objective-C 编码器 - 方法命名约定