Вы должны перекомпилировать a.exe каждый раз, когда public интерфейс 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, поскольку, когда в какой-то момент в будущем код изменится, так что это условие не будет выполнено, вам будет сложно отлаживать ошибки.