在一個NAMESPACE中,我們也可以用一個別名指代現(xiàn)有的NAMESPACE或是一些其他類型數(shù)據(jù)。 別名的使用格式如下: using 別名 = 一個已經(jīng)存在的類型; 例如:using soholife = System;
namespace N1.N2 { class A {} } namespace N3 { using A = N1.N2.A; class B: A {} } 這里,在N3中,A是N1.N2.A的別名,而N3.B則繼承于N1.N2.A!同樣的我們也可以用下面的方式來取得同樣的效果: namespace N3 { using R = N1.N2; class B: R.A {} }
namespace N1.N2 { class A {} }
{ class A {} }
{ using A = N1.N2.A; }
答案當然是肯定的了,錯!因為一個別名必須是在NAMESPACE中唯一的,而上面由于已經(jīng)有了 class a{},我們在用using A =N1.NE.A;就所以肯定要出錯了!不過如果我們該成: using B =N1.N2.A;那么結(jié)果如何呢?朋友門自己想想吧!我就不多說了!
namespace N1.N2 { class A {} } namespace N3 { using R = N1.N2; } namespace N3 { class B: R.A {} } 上面的例子中,不知道大家覺得如何,正確?錯誤? 如果我來回答的話,錯。ê呛牵郧白鲞x擇題養(yǎng)成的習慣,凡是這樣問的答案就是錯!不過原因是說不出來的了!)
原來在一個分開的單元中使用別名的時候,別名只是在它所在的單元中(NAMESPACE或其它)可以使用,而在其他單元中是不能夠用的,所以上面的那個例子中,在第二個N3中使用R的時候,會提示R未知!當然了,如果我們想使用這樣的方式,我們還是有辦法的,就是把別名R寫到N3的外面:如下 using R = N1.N2; namespace N3 { class B: R.A {} }
|
溫馨提示:喜歡本站的話,請收藏一下本站!