Удаление скомпилированного метода из файла .h и его последствия - PullRequest
0 голосов
/ 15 июля 2009

У меня есть двоичный файл, который существовал всегда. У него есть класс С, который всегда существовал. Мы должны представить новый метод M в классе C, но мы хотим, чтобы только некоторые пользователи знали о существовании такого метода M.

Удаляя из файла .h такой метод, какую проблему мы можем представить? Будет ли такой подход обратно совместимым?

РЕДАКТИРОВАТЬ: Нам на самом деле все равно, есть ли способ найти метод. Мы просто хотим убедиться, что только люди, знающие, что они делают, используют это.

Ответы [ 2 ]

7 голосов
/ 15 июля 2009

С большинством компиляторов C ++: если метод виртуальный, у вас будут серьезные проблемы (vtable будет испорчен); если метод НЕ виртуальный, вам не следует этого делать (но какой-то умный пользователь определит существование того, что вы пытаетесь скрыть через «безопасность через неизвестность») и найдет способы использовать метод, который вы предпочли бы скрыть от него - - но это другая история; -).

6 голосов
/ 15 июля 2009

Более безопасный метод состоит в том, чтобы просто создать производный класс и передать его .h только определенным людям.

...