2017-07-14 17 views
1

現在、私は無名の名前空間に再利用無名の名前空間の機能

// A.cpp 

namespace { 
void foo1() {} 
void foo2() {} 
} 

を定義されたいくつかの機能を有するものA.cppファイルを持っている今、私は再使用したい他のB.cppファイルを持っていますfoo1()とfoo2()です。ベストプラクティスは何ですか?私たちはfoo1のとfoo2はのための新しいCOMMON.Hファイルを持って、その後、.cppファイルで匿名の名前空間で定義されたCOMMON.H

// Common.h 
namespace { 
void foo1() {} 
void foo2() {} 
} 

// A.cpp 
#include <Common.h> 

// B.cpp 
#include <Common.h> 

答えて

4

を含めるようにA.cpp/B.cppを尋ねる機能のようなものでなければなら私的な機能。これらのファイルは、別の.cppファイルで再利用されるものではありません。

あなたは、彼らが別の.cppファイルで再利用できることが判明した場合、それらの関数は.hファイルで宣言され、適切な.cppファイルで定義する必要があります。

あなたがCOMMON.H、A.h、またはB.hの関数を宣言するかどうかは、あなた次第完全に依存。あなたの投稿されたコードの関数の名前は、どの.hファイルがそれらの宣言を含むのに最適であるかについて多くの手がかりを与えません。

あなたがCOMMON.Hでそれらを宣言した場合、私はあなたがCommon.cppでそれらを実装することを示唆しています。

あなたがA.hでそれらを宣言した場合、私はあなたがA.cppでそれらを実装することを示唆しています。

あなたがB.hでそれらを宣言した場合、私はあなたがB.cppでそれらを実装することを示唆しています。

関連する問題