What are qualified-id/name and unqualified-id/name?

后端 未结 2 543
独厮守ぢ
独厮守ぢ 2020-12-12 15:55

I was wondering if someone could explain there terms since I encounter them in many places. I know some basic theory about them but not sure what I know is right or wrong.

2条回答
  •  难免孤独
    2020-12-12 16:02

    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.

提交回复
热议问题