我想知道是否有人可以解释这些术语,因为我在很多地方都遇到过。我知道一些关于它们的基本理论,但不确定我所知道的是对还是错。
有人能解释一下这些术语吗?
限定名是指某种指示它属于哪里的名称,例如类规范、名称空间规范等。不限定名称是指不限定的名称。
点击这里阅读 James McNellis 的回答:
什么是嵌套名称说明符?
给出:
struct A { struct B { void F(); }; };
A
::A
A::B
A::
::A::B
A::B::F
B::
A::B::
::A::B::F
限定名是指定范围的名称。 考虑下面的示例程序,对 cout和 endl的引用是限定名称:
cout
endl
#include <iostream> int main() { std::cout<<"Hello world!"<<std::endl; return 0; }
请注意,cout和 endl的使用是从 std::开始的,它们使它们成为 合格的名字。
std::
如果我们通过 using 声明或指令 * (比如 using namespace std;)将 cout 和 endl 引入作用域,并且仅仅使用 cout和 endl,那么它们应该是 不合格的名字,因为它们缺少 std::。
using namespace std;