Лучший способ доступа к объектам глобального класса C ++ - PullRequest
1 голос
/ 30 ноября 2011

У меня есть класс журнала ошибок, который я использую во всех файлах в моем проекте.Это позволяет мне отлаживать и лучше понимать, что делает мой код.Я объявляю это глобально в main.cpp, говоря Log errorLog, а затем использую его соответствующим образом.Теперь я разбил файлы на несколько файлов, и мне всегда удавалось использовать мой регистратор в нескольких файлах, используя «extern Log errorLog», и он прекрасно работает.таким образом, я могу сделать это без простого включения внешнего в верхней части.Друг упомянул кое-что о единственном образце.Кто-нибудь может объяснить эту концепцию?У кого-нибудь есть другая концепция, которая будет работать.

Спасибо!

1 Ответ

3 голосов
/ 30 ноября 2011

Оставайтесь с extern и забудьте о синглетонах, как можно скорее, пожалуйста. Притворись, что никогда не слышал о них. :) Также см. это и этот ответ .

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

...