Доступ к внутреннему методу из дочернего пространства имен - PullRequest
0 голосов
/ 31 января 2012

В 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();
            }
        };
    }
}

Похоже, это должно быть возможно. Извините, если об этом уже спрашивали.

1 Ответ

2 голосов
/ 31 января 2012

В C ++ / CLI internal (а также C # internal и эквиваленте CLI assembly) не имеет ничего общего с пространствами имен. Когда вы используете этот модификатор для члена, это означает, что он доступен из той же сборки , что и тот, где он объявлен.

Это означает, что если Test.Child.TestClass находится в той же сборке, что и Test.TestClass, он может получить доступ к InternalMethod(). Если он находится в другой сборке, он не может получить к нему доступ. Пространства имен не имеют к этому никакого отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...