命名空间中的静态成员函数

Static member functions in namesapce

我的 class 中有静态成员函数,我想将其添加到我的命名空间中。

class A{
public:
    static void func();
};

namespace myNamespace{
    void A::func(){
    ...
    }
}

int main(){
   myNamespace::A::func;
}

我收到以下错误:

这是什么原因?

因为你把一个属于classA的函数放到了命名空间里面。只需在命名空间内将 class 和函数 A 放在一起,您的代码应该是这样的

namespace myNamespace {
class A {
public:
    static void func();
};


    void A::func() {

    }
}
int main()
{

    myNamespace::A::func;

    return 0;
}

声明和定义都应该在名称空间内才能正常工作。在您的代码中,您已在命名空间外声明 class 。您可以按如下方式修复它。

namespace myNamespace{

    class A{
    public:
        static void func();
    };


    void A::func(){
    ...
    }
}

int main(){
   myNamespace::A::func;
}

同时尝试理解错误消息,这将节省您大量的谷歌搜索时间。

https://www.crashhandler.com/ ---> C++ 最佳实践 {编辑 :: 我自己的博客}