У меня очень странная проблема в Visual C++ 2008:
Мой проект содержит некоторые классы, которые я разрабатываю, и я не включаю в прекомпилированный заголовок stdafx.h, поскольку они еще не закончены (EDIT они включены в файл main.cpp, после stdafx.h)
Когда я вношу изменения в класс с файлами.h и.cpp, изменения применяются правильно.
Когда я вношу изменения в класс, который имеет только файл.h, VC2008 обнаруживает там ошибки, но если все идет правильно, он запускает программу, и класс не обновляется. Доказательство этого состоит в том, что если я устанавливаю точку останова где-то в классе, это не останавливается на достигнутом, и точка останова появляется с предупреждением, говорящим, что "нет исполняемого кода, связанного с этой линией".
EDIT Я попытался включить заголовочный файл в stdafx.h, и поведение будет одинаковым: изменения не применяются.
То, что я делаю прямо сейчас, - это очистить проект перед запуском снова. Иногда я теряю много времени, если забываю очистить, потому что мне нужно достичь большого процесса, чтобы достичь и проверить изменения, тогда я вижу, что я не могу отлаживать и должен останавливаться, чистить, запускать и достигать изменений!
Любое решение не нужно очищать проект раз и навсегда?
Просто для любопытства я пошел глубже в этом вопросе. Очень странное поведение:
Когда изменения производятся только в частной функции члена класса из класса заголовка без файла.cpp, который включен в stdafx.h (предварительно скомпилированный), компилятор не будет применять изменения!
Это не будет применяться, если изменения сделаны в конструкторе, общедоступных методах, переменных или в определениях подструктуры/класса.
Если это имеет смысл для кого-то, это будет действительно хорошим ясным объяснением.