我在test
中有一个名为namespace buzz
的函数。
从这个测试函数我调用另一个名为dummy
的函数,它位于namespace example
内。
我收到以下错误:
Dummy不是示例的成员。
请告诉我如何在2个不同的命名空间之间进行通信?
由于
答案 0 :(得分:3)
如果命名空间没有嵌套,则应该从根目录开始导航,即:
而不是:
example::dummy
写:
::example::dummy
答案 1 :(得分:3)
以下代码适用于gcc(如预期的那样)。你的问题必须是问题所在的问题。
#include <iostream>
namespace example
{
void dummy() { std::cout << "Dummy\n"; }
}
namespace buzz
{
void test() { example::dummy(); }
}
int main()
{
buzz::test();
}
答案 2 :(得分:2)
您需要为此查询提供代码。否则只是来自您的问题,我猜您正在拼写错误:
namespace example {
void dummy() {}
}
namespace buzz {
void test () { example::Dummy(); } // capital 'D' instead of 'd' for dummy
}
当然,Dummy is not a member of example.
:))