В настоящее время я создаю набор общих функций (реализации алгоритма поиска) и думаю, что я делаю группировку неправильно. На данный момент у меня есть класс 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 ++ и пространство имен, но получил очень общие вопросы о пространствах имен вернулись, и ни одна из них не казалась этой конкретной проблемой.