Нет никакой дополнительной опции, кроме перекомпиляции.Если выяснить, какие классы являются производными от вашего class BaseClass
, является проблемой, то это можно решить следующим образом.
class FinalLock {
FinalLock () {}
friend class BaseClass;
};
При каждом изменении размера BaseClass
выполните следующие действия:
class BaseClass : virtual FinalLock {
...
};
И перекомпилируйте весь проект.Какие бы классы ни происходили из BaseClass
, это вызовет ошибку компилятора (фактически, создание экземпляров классов вызовет ошибку).
Это говорит вам, какие классы зависят от BaseClass
.Это упражнение нужно только один раз.Затем вы можете пометить весь зависимый код.
Удалите этот дополнительный код, как только вы закончите.С C ++ 11 указанную выше технику можно сделать еще проще:
final class BaseClass {
^^^^^
};