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

この方法で関数を定義し、「myclass」とその派生物の両方からアクセスできると考えました。ただし、gcc はこのコードをコンパイルしたくありません。

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

この関数はここにある唯一のものです。何が欠けていますか? ありがとう。

4

1 に答える 1

9

inline1 つの定義ルールを破らないように関数をマークするか、実装を.cppファイルに配置してヘッダーに宣言のみを残す必要があります。

于 2013-09-30T20:38:36.240 に答える