如何在不同的命名空间中调用函数?

时间:2011-04-11 09:54:02

标签: c++ namespaces

我在test中有一个名为namespace buzz的函数。

从这个测试函数我调用另一个名为dummy的函数,它位于namespace example内。

我收到以下错误:

  

Dummy不是示例的成员。

请告诉我如何在2个不同的命名空间之间进行通信?

由于

3 个答案:

答案 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.:))