我的类中有静态成员函数,我想在我的命名空间中添加它。
class A{
public:
static void func();
};
namespace myNamespace{
void A::func(){
...
}
}
int main(){
myNamespace::A::func;
}
我收到以下错误:
原因是什么?
答案 0 :(得分:1)
因为您将一个属于A类的函数放入了命名空间。只需将类和函数A一起放在命名空间中,您的代码应该像这样
namespace myNamespace {
class A {
public:
static void func();
};
void A::func() {
}
}
int main()
{
myNamespace::A::func;
return 0;
}
答案 1 :(得分:1)
声明和定义都应位于NameSpace中,这样它才能起作用。在代码中,您已经在名称空间之外声明了该类。您可以按以下方式修复它。
namespace myNamespace{
class A{
public:
static void func();
};
void A::func(){
...
}
}
int main(){
myNamespace::A::func;
}
还尝试理解错误消息,这将为您节省大量搜索时间。
https://www.crashhandler.com/ ---> C ++最佳实践{EDIT ::我自己写博客}