170 похожих чатов

Привет всем. Читал где-то, что не сильно хорошая практика создавать

глобальные переменные, а лучше передавать значение через параметры в функциях. Также слышал мнение, что лучше всё таки использовать глобальные переменные, которые потом определять через extern в нужных функциях. Так что всё таки лучше?

15 ответов

7 просмотров

явное лучше неявного, но есть исключения, логеры всякие и т.п., которые могут быть глобальными

Глобальные переменные это ад в проектах больше hello world

Kirill Bolshakov
Глобальные переменные это ад в проектах больше hel...

Синглтоны часто используются. Правда это не совсем переменные, но всё же

Kirill 🚜
Синглтоны часто используются. Правда это не совсем...

по сути это они и есть теже глобальные объекты

Kirill 🚜
Синглтоны часто используются. Правда это не совсем...

синглтоны это то же самое, что и глобальные переменные

Kirill Bolshakov
синглтоны это то же самое, что и глобальные переме...

Скорее следствие, все же в первую очередь — это шаблон проектирования, кмк

Лучше так, как тебе надо.

Ilya Zviagin
Программирование — это вообще АД!

В твоих силах сделать его более менее комфортным

std::slavik
не то же самое

глобальных переменных какого-то типа может быть несколько и доступ мы к ним получаем по имени переменной, в синглтоне же количество объектов типа - один и доступ к объекту мы получаем по имени типа, а не объекта, тем самым исключаем проблему с конфликтами имен возможными при использовании глобальных переменных, не требуется помнить постоянно при нейминге, не надо огороды вот такие городить: #include <iostream> int var = 1; int main() { int var = 0; { extern int var; std::cout << var << std::endl; } std::cout << var << std::endl; }

std::slavik
не то же самое

речь о смысле, статическая переменная ли, глобальная переменная - смысл от этого не меняется.

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Есть предложения, как подобное можно упростить?
Hemul GM
12
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
just use free version ?? pycharm has a free version
Fan / Ac
9
Карта сайта