A qualified name is one that has some sort of indication of where it belongs, e.g. a class specification, namespace specification, etc. An unqualified name is one that isn't qualified.
Read James McNellis' answer here:
What is a nested name specifier?
Given:
struct A {
struct B {
void F();
};
};
A
is an unqualified-id.
::A
is a qualified-id but has no nested-name-specifier.
A::B
is a qualified-id and A::
is a nested-name-specifier.
::A::B
is a qualified-id and A::
is a nested-name-specifier.
A::B::F
is a qualified-id and both B::
and A::B::
are nested-name-specifiers.
::A::B::F
is a qualified-id and both B::
and A::B::
are nested-name-specifiers.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…