Глобальные переменные в современном C ++

Каковы (объективные) недостатки создания класса, в котором все члены (атрибуты, функции) являются статическими? В частности, по сравнению с использованием пространства имен? Или вы предпочитаете создавать глобальные переменные / функции?

Мне нравится создавать статические атрибуты, потому что я нахожу их «аккуратнее». (Я точно знаю, откуда они берутся и т. Д.) Я не очень знаком с пространствами имен. И мне совсем не комфортно с глобальными переменными, потому что я не очень знаком с такими ключевыми словами C, какextern а такжеstatic.

Далее, если мы рассмотрим класс

class MyStaticClass
{
    private:

        static int x;
        static double y;

    public:

        static float s;
        static double weatherForecast(unsigned int, char);
};

и пространство имен

namespace MyNamespace
{
    int x;
    double y;
    float s;
    double weatherForecast(unsigned int, char);
}

Есть ли различия (с точки зрения производительности) между звонкамиMyStaticClass::weatherForecast и звонитMyNamespace::weatherForecast?

Есть ли различия (с точки зрения производительности) между чтением / письмомMyStaticClass::s и чтение / записьMyNamespace::s?

Изменится ли какой-либо из ответов на вышеуказанные вопросы, если вместо основных типов будут использоваться классы?

Ответы на вопрос(1)

Ваш ответ на вопрос