Класс C ++ со всеми членами и статическими методами - PullRequest
0 голосов
/ 09 июля 2019

Я получил программу с несколькими классами, и у меня есть один класс, в котором все статические члены и методы имеют следующее содержимое: два члена и два метода для их инициализации при запуске. Также все члены моего статического класса являются публичными. У меня вопрос, если это плохая практика или есть какой-то лучший способ сделать это? Я использую членов этого класса только в одном из других классов.

1 Ответ

0 голосов
/ 09 июля 2019

Всегда избегайте создания бесполезных символов .

Если в классе нет необходимости, создайте набор функций в пространстве имен.Если вашему набору функций необходимо манипулировать некоторыми данными, то стоит использовать статический класс / синглтон.

Мое правило, когда я разрабатываю приложение, - избегать использования элементов, вызываемых из любого места.

Чем больше вы ограничиваете себя (или пользователь в случае библиотеки), тем безопаснее ваш код (меньше ошибок из-за неправильного использования).

Если вам действительно нужно создать статический класс, я могу предложить вам использовать конструктор, подобный этому:

class Foo
{
    public:
        Foo() = delete;
};

Во избежание путаницы между экземпляром класса и полностью статическим классом.

Если вам нравится процветать, вы можете настроить что-то вроде этого:

#define STATIC_CLASS(class_name) public: class_name() = delete

class Foo
{
    STATIC_CLASS(Foo);
};
...