我在默认/"root"命名空间中定义了两个命名空间,nsA和nsB。nsA有一个子命名空间nsA::subA。当我试图从nsA::subA内部引用属于nsB的函数时,我会遇到错误:
undefined reference to `nsA::subA::nsB::theFunctionInNsB(...)'
有什么想法吗?
我在默认/"root"命名空间中定义了两个命名空间,nsA和nsB。nsA有一个子命名空间nsA::subA。当我试图从nsA::subA内部引用属于nsB的函数时,我会遇到错误:
undefined reference to `nsA::subA::nsB::theFunctionInNsB(...)'
有什么想法吗?
使用全局作用域解析:
::nsB::TheFunctionInNsB()
#include <stdio.h>
namespace nsB {
void foo() {
printf( "nsB::foo()\n");
}
}
namespace nsA {
void foo() {
printf( "nsA::foo()\n");
}
namespace subA {
void foo() {
printf( "nsA::subA::foo()\n");
printf( "calling nsB::foo()\n");
::nsB::foo(); // <--- calling foo() in namespace 'nsB'
}
}
}
int main()
{
nsA::subA::foo();
return 0;
}
#include <iostream>
namespace nsB {
void foo() { std::cout << "nsB\n";}
}
namespace nsA {
void foo() { std::cout << "nsA\n";}
namespace subA {
void foo() { std::cout << "nsA::subA\n";}
void bar() {
nsB::foo();
}
}
}
int main() {
nsA::subA::bar();
}