在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();
}
};
}
}
似乎这应该是可能的。对不起,如果之前有人询问过。
答案 0 :(得分:2)
在C ++ / CLI中internal
(以及C#internal
和CLI等效的assembly
)与命名空间无关。当您在成员上使用该修饰符时,这意味着它可以从同一程序集内部访问,就像声明它一样。
这意味着如果Test.Child.TestClass
与Test.TestClass
位于同一个程序集中,则可以访问InternalMethod()
。如果它在另一个程序集中,则无法访问它。命名空间与此无关。