Каковы (объективные) недостатки создания класса, в котором все члены (атрибуты, функции) являются статическими? В частности, по сравнению с использованием пространства имен? Или вы предпочитаете создавать глобальные переменные/функции?Глобальные переменные в современном 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
?Был ли изменен любой из ответов на вышеуказанные вопросы, если вместо первичных типов были использованы классы?
_ «Или вы скорее создали бы пространство имен?» _ Я думаю, что это общепринятая практическая практика сегодня. Но это может быть просто мнение. –
зачем они вам нужны? Множество констант? + https://isocpp.org/wiki/faq/coding-standards#global-vars –
https://google.github.io/styleguide/cppguide.html#Static_and_Global_Variables, это может быть полезно. – 88877