在編譯單元或命名空間的成員聲明中命名空間中,包含的類型可以被成員直接使用。例如:
namespace N1.N2
{
class A {}
}
namespace N3
{
using N1.N2;
class B: A {}
}
一個(gè)命名空間使用指示符導(dǎo)入了在給出的命名空間中包含的類型,但沒有引入嵌套的命名空間。見下例:
namespace N1.N2
{
class A {}
}
namespace N3
{
using N1;
class B: N2.A {} // 錯(cuò)誤, N2 未知
}
這里命名空間使用指示符導(dǎo)入了N1 中包含的類型,但沒有導(dǎo)入N1 中的嵌套,所以在類B 的聲明中引用N2.A 是錯(cuò)誤的。
和別名使用指示符不同,命名空間使用指示符可以導(dǎo)入在編譯單元或命名空間主體中預(yù)定義的類型。
在使用命名空間的時(shí)候,如果在編譯單元或命名空間主體中定義的成員與命名空間使用指示符導(dǎo)入的成員名字相同,編譯器將認(rèn)作是前者。也就是說,編譯單元或命名空間主體中定義的成員覆蓋了命名空間使用指示符導(dǎo)入的同名成員。
新聞熱點(diǎn)
疑難解答
圖片精選