一部の古いコードをリファクタリングしているときに、実際には静的であるはずのいくつかのパブリック メソッドを削除しました。これらは、a) メンバー データを操作したり、他のメンバー関数を呼び出したりしないためです。b) 他の場所で役立つ可能性があるためです。
これにより、「ヘルパー」関数をグループ化する最善の方法について考えるようになりました。Java/C# の方法は、プライベート コンストラクターで静的関数のクラスを使用することです。
class Helper
{
private:
Helper() { }
public:
static int HelperFunc1();
static int HelperFunc2();
};
ただし、C++ であるため、名前空間を使用することもできます。
namespace Helper
{
int HelperFunc1();
int HelperFunc2();
}
ほとんどの場合、名前空間アプローチを好むと思いますが、各アプローチの長所と短所を知りたいと思いました。たとえば、クラス アプローチを使用した場合、オーバーヘッドは発生しますか?