Tag: 全局命名空间

为什么在C ++中包含“使用名称空间”到头文件是一个坏主意?

在阅读Bruce Eckel关于命名空间的“Thinking in C ++”时,我遇到了以下的说法: 然而,你几乎从不会在头文件中看到一个using指令(至less不在范围之外)。 原因是使用指令消除了对那个特定名字空间的保护,并且效果持续到当前编译单元结束。 如果你在一个头文件中放置一个using指令(在一个范围之外),这意味着这个“名字空间保护”的丢失将出现在任何包含这个头文件的文件中,这通常意味着其他的头文件。 请您帮助我用一些简单的例子来理解上述说法吗?

prepend双冒号“::”是什么意思?

我在一个类中find了这行代码,我必须修改它: ::Configuration * tmpCo = m_configurationDB;//pointer to current db 而且我不知道到底是什么意味着类名前缀的双冒号。 没有这个我会读: tmpCo声明作为指向Configuration类的对象的指针…但前缀的双冒号混淆了我。 我还发现: typedef ::config::set ConfigSet;