Вы должны a.exe перекомпилировать каждый раз, когда общественный интерфейс B.dll изменений (не только размер, а также, когда члены перестроены, частные/общественные изменения [это также влияет на порядок членов, не будучи видимым из исходного кода], ...). Если C
является частью открытого интерфейса, вам также необходимо перекомпилировать A.exe также каждый раз, когда изменения в C
. Вам не нужно перекомпилировать a.exe, если C
является частным классом b.dll, на который не ссылается файл a.exe. Также обратите внимание на то, что C
можно косвенно ссылаться, например, когда ваш B::funx
является встроенной функцией, так как тогда создание C может происходить в коде A.exe.
Как руты эмпирическое, когда вы заменяете определение C
с декларацией class C;
, и все еще может составить A.exe, вам не нужно заботиться о C
. Но я бы предпочел, чтобы каждый раз компилировать A.exe, так как в какой-то момент в будущем код изменяется, так что это условие не выполняется, вам будет сложно отлаживать ошибки.