命名空间中的静态成员函数
Static member functions in namesapce
我的 class 中有静态成员函数,我想将其添加到我的命名空间中。
class A{
public:
static void func();
};
namespace myNamespace{
void A::func(){
...
}
}
int main(){
myNamespace::A::func;
}
我收到以下错误:
- 错误:“void A::func()”的定义不在包含“A”的命名空间中 [-fpermissive]
- 错误:“myNamespace::A”尚未声明
我的命名空间::A::func();
void 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++ 最佳实践 {编辑 :: 我自己的博客}
我的 class 中有静态成员函数,我想将其添加到我的命名空间中。
class A{
public:
static void func();
};
namespace myNamespace{
void A::func(){
...
}
}
int main(){
myNamespace::A::func;
}
我收到以下错误:
- 错误:“void A::func()”的定义不在包含“A”的命名空间中 [-fpermissive]
- 错误:“myNamespace::A”尚未声明 我的命名空间::A::func(); void 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++ 最佳实践 {编辑 :: 我自己的博客}