在命名空间中定义一个函数

时间:2013-09-30 20:36:28

标签: c++ namespaces

namespace n1 {
  namespace n2 {
    ...
    int myfunc(void)
      {
         return 1;
      }
    class myclass {
      ..
    };
  }
}

我认为可以用这种方式定义一个函数,并从'myclass'及其派生词中访问它。但是gcc甚至不想编译这段代码:

multiple definition of `n1::n2::myfunc()'

此功能是这里唯一的功能,我缺少什么? 感谢。

1 个答案:

答案 0 :(得分:9)

您需要标记函数inline以避免违反一个定义规则,或将实现放在.cpp文件中,并且只在标题中保留声明。