C++ 函数名也是名称空间吗?
我的疑问是为什么HelpfulFunc会附加到“使用myfancy_应用程序”中。难道我们就不能:C++ 函数名也是名称空间吗?,c++,namespaces,C++,Namespaces,我的疑问是为什么HelpfulFunc会附加到“使用myfancy_应用程序”中。难道我们就不能: using my_fancy_app; HelpfulFunc(); 函数名也是名称空间吗 否。函数名不是命名空间 这个评论有点错误。这是一个限定名,但不是一个乏味的限定名。一个完全限定的名称应该是::my_fancy_app::HelpfulFunc在后一个代码段中,您必须使用名称空间my_fancy_app编写。这意味着my\u fancy\u app::名称空间中定义的所有内容都将被引入。
using my_fancy_app;
HelpfulFunc();
函数名也是名称空间吗
否。函数名不是命名空间
这个评论有点错误。这是一个限定名,但不是一个乏味的限定名。一个完全限定的名称应该是
::my_fancy_app::HelpfulFunc
在后一个代码段中,您必须使用名称空间my_fancy_app编写代码>。这意味着my\u fancy\u app::
名称空间中定义的所有内容都将被引入。这只拉入了HelpfulFunc
,而没有拉入my\u fancy\u app
命名空间中的所有其他内容。如果您只需要my_fancy_app中的一个函数,而不想担心使用整个名称空间时会出现名称冲突,那么您应该这样做。@NathanPierson啊,我明白了。你能解释一下为什么我们在第一个代码段中不必使用“namespace”关键字吗?@Jamāl因为my_fancy_app::HelpfulFunc
不是名称空间(我希望它能回答你的问题)@Kevin ok明白了,非常感谢!调用my_fancy_app::HelpfulFunc()
与:my_fancy_app::HelpfulFunc()
不同,仅当它在另一个命名空间中调用时,对吗?@Jamāl Yes。即使如此,它也只能在以下情况下解析为另一个函数::my_fancy_app
被另一个名称隐藏。我看不出全局名称空间如何被另一个名称空间隐藏。你能解释一下吗?@Jamāl可能是隐藏在中的某个东西的完全限定名::我的_fancy_app
:other_namespace。嗯,我不得不考虑一下这个问题。无论如何,它偏离了我关于函数名称空间的主要问题,您已经回答了这个问题。我会接受答案。非常感谢你给了我继续思考的方向。
my_fancy_app::HelpfulFunc(); // fully qualified name