Sto lavorando in Visual Studio 2010, utilizzando codice C++. Quello che sto cercando di fare è cambiare il valore di una direttiva del preprocessore in fase di esecuzione, non so se è possibile, ma ho provato questo ..Modifica del valore di una macro in fase di esecuzione
somefile.h
static int mValue = 0;
#define POO = mValue;
...
#if POO 0
//define class methods
#else
//define class methods differently
}
main.cpp
main()
{
//Code calls constructor and methods allowed when POO is 0
//Code increments mValue
//Code calls constructor and methods allowed when POO is 1
}
Come si può modificare POO in modo che gli oggetti di classe utilizzino un'implementazione diversa di altri metodi? O se non è possibile, qual è un altro approccio a questo?
Non è possibile modificare le direttive del preprocessore in fase di esecuzione. L'uso di una classe base con classi derivate diverse può funzionare, a seconda del problema (cosa difficile da dire da ciò che ci hai mostrato). – Yuushi