Создание «вещи» контейнера в C ++ для хранения статических функций. Какой должна быть вещь?

В настоящее время я создаю набор общих функций (реализации алгоритма поиска) и думаю, что я делаю группировку неправильно. На данный момент у меня есть класс Sorting, который объявлен в файле с именем Sorting.h (он еще далеко не закончен, кстати), примерно так:

#ifndef SORTING_H
#define SORTING_H

#include <vector>

class Sorting {

private:
    Sorting();
    Sorting(const Sorting& orig);
    virtual ~Sorting();

public:
    static void bubbleSort(std::vector<int>& A);
    // etc
};

#endif  /* SORTING_H */

Теперь, Поскольку конструктор является закрытым, пользователь не может создать экземпляр моего класса - он фактически является просто держателем статических функций, которые пользователь может вызывать. Однако из того, что я читал о C ++ до сих пор - и из просмотра библиотек STL и т. Д. - я думаю, что я делаю это неправильно. Должен ли я вместо этого иметь пространство имен с именем «Сортировка» или что-то в этом роде? Если да, то как выглядит мой заголовочный файл (тот, который будет включать пользователь)? И придется ли мне менять структуру остальных файлов? В настоящее время каждый набор алгоритмов находится в своем собственном файле cpp (например, BubbleSort.cpp, CocktailSort.cpp и т. Д.).

Извинения за то, что может быть повторяющимся вопросом - я действительно искал C ++ и пространство имен, но получил очень общие вопросы о пространствах имен вернулись, и ни одна из них не казалась этой конкретной проблемой.

5
задан Stephen 19 August 2010 в 20:34
поделиться