2012-01-31 46 views
0

在C++/Cli中,是否可以從子命名空間訪問內部方法而不反射?從子命名空間訪問內部方法

實施例:

//TestClass.h 
namespace Test { 
    public ref class TestClass { 
    internal: 
     void InternalMethod(); 
    }; 
} 

//ChildClass.h 
namespace Test { 
    namespace Child { 
     public ref class TestClass { 
     public: 
      void AccessInternalMethod() 
      { 
       TestClass c; 
       c.InternalMethod(); 
      } 
     }; 
    } 
} 

好像這應該是可能的。對不起,如果之前已經問過。

回答

2

在C++/CLI中internal(以及C#internal和CLI等效assembly)與命名空間沒有任何關係。當您在成員上使用該修飾符時,這意味着它可以從同一個裝配內部訪問,就像它聲明的那樣。

這意味着如果Test.Child.TestClassTest.TestClass位於同一組件中,則它可以訪問InternalMethod()。如果它在另一個程序集中,則無法訪問它。命名空間與此無關。

+0

我有點過早,還有一個編譯器錯誤導致InternalMethod無法找到。我=愚蠢。謝謝! – 2012-01-31 02:43:45

+0

Svick =很高興幫助+希望凱爾也喜歡SWTOR。 – svick 2012-01-31 07:21:07