Хотя технически вы не можете сделать это в C ++ без перекомпиляции, если вы не хотите переписывать на другом языке программирования, вы могли бы написать небольшую вспомогательную программу, которая (в то время как исходная программа не выполняется) перекомпилирует первую программу.
Если бы вы действительно хотели это сделать (это совсем не сложно), я бы изучил GNU g ++ .
Если вы используете Windows, вы, вероятно, захотите MinGW (что, я думаю, идет с установленным g ++). Оба являются бесплатными / с открытым исходным кодом и подпадают под действие GNU GPL (на что вам нужно обратить внимание, если вы планируете продать вашей программы. Однако вы можете отказаться от нее)
По сути, вы можете запустить свою программу, вызвать другую программу перед закрытием, и заставить эту программу действовать как скрипт для вызова g ++ для повторной компиляции вашего кода. Я делал это раньше, но для более быстрой отладки, а не для выпуска программы, которая работает таким образом.