динамический — Может ли класс добавлять классы друзей во время выполнения в C ++?

Я хотел бы, чтобы некоторые классы стали друзьями других классов во время выполнения. Есть ли способ сделать это?

В качестве альтернативы, есть ли способ получить доступ к общедоступным / защищенным / приватным ivars объекта во время выполнения или расширить класс, аналогичный функции категории Objective-C?

В данном случае я хотел бы иметь возможность предоставить тестовому набору доступ к ivars в классах во время выполнения, но без загрязнения кода приложения специальным кодом тестового набора. Тестовая структура может измениться и будет отличаться в зависимости от платформы развертывания.

Описание: найдите способ сохранить код приложения чистым и свободным от внешних артефактов.

0

Решение

Я хотел бы, чтобы некоторые классы стали друзьями других классов во время выполнения. Есть ли способ сделать это?

Нет, это невозможно с C ++.

В качестве альтернативы, есть ли способ получить доступ к общедоступным / защищенным / приватным ivars объекта во время выполнения

Также нет концепции изменения видимости членов класса во время выполнения.

Модификаторы доступа — это чистые понятия времени компиляции, во время выполнения их невозможно изменить.


Способом преодоления этого для вас конкретного варианта использования может быть использование интерфейсов, как я делал наброски здесь:

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]