gpt4 book ai didi

c++ - 是否需要私有(private)静态方法?

转载 作者:可可西里 更新时间:2023-11-01 18:15:43 29 4
gpt4 key购买 nike

The Principle Engineer在我上一家公司有一条规则,private static 方法应该作为实现文件中的函数来实现,而不是类方法。

我不记得他的规则是否有任何异常(exception)。我在目前的工作中偶然发现了这样做的动机:如果相关函数的参数或返回类型是需要在 header 中包含定义文件的对象,这可能会造成不必要的困难。 em>

这足以让我不再使用 private static 方法,但在我注销它们之前我想知道是否有人知道他们的利基市场填写一个实现文件函数不会?

编辑:

此处的示例可能会有所帮助。假设这是 class Foo 声明的开始,它还有其他方法将在实现文件中调用 void foo():

class Foo {
static void foo();

所以foo只能通过Foo的其他方法访问。为什么我不直接在实现文件中定义 foo,并将它放在 header 之外?

最佳答案

与实现文件中独立的static函数不同,私有(private)静态成员函数可以在类的头文件中使用。这在您想要内联调用您的私有(private)静态函数的非私有(private)成员函数的情况下很重要:

class Demo {
private:
static std::string sanitize(const std::string& name);
std::string name;
public:
Demo(const std::string& n) : name(sanitize(n)) {
}
};

对独立静态函数执行相同操作需要在 cpp 文件中实现 Demo 的构造函数。

关于c++ - 是否需要私有(private)静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41964745/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com