Pracuję w Visual Studio 2010, używając kodu C++. Co próbuję zrobić, to zmienić wartość dyrektywy preprocesora w czasie pracy, nie wiem, czy jest to możliwe, ale próbowałem to ..Zmienianie wartości makra w czasie wykonywania
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
}
W jaki sposób można zmienić ustawienia POO tak, aby obiekty klasy korzystały z innej implementacji innych metod? A jeśli nie jest to możliwe, jakie jest inne podejście do tego?
Nie można zmienić dyrektyw preprocesora w czasie wykonywania. Używanie klasy bazowej z różnymi klasami pochodnymi może działać, w zależności od twojego problemu (który jest trudny do odróżnienia od tego, co nam pokazałeś). – Yuushi