关于C++:为什么Singleton是比全局对象更好的选择

Why is Singleton a better choice than Global Objects

本问题已经有最佳答案,请猛点这里访问。

你好,堆栈溢出。

我正在为明天的CS考试而学习,我正在看我们教授给我们准备的复习表。其中一个要点是,要知道为什么单件是比全球更好的选择。

我不太确定原因,但我记得他说过关于singleton使用更少的"名称空间污染"的话。我在谷歌上搜索了几次,比较singleton和global,但几乎所有的结果都表明两者都是糟糕的选择lol。所以这让我困惑了。

如果有人能帮我把这件事弄清楚,我将不胜感激。谢谢!


它们是懒惰的构造:

1
2
3
4
5
6
7
8
9
10
LargeObject   global;                    // Large object is always constructed.

class LargeObject_Singelton
{
    public: static LargeObject& getInstance()
    {
        static LargeObject  instance;     // This object is not created until the first
        return instance;                  // time getInstance() is called.
    }                                     // If you never use it this can be important.
};