我有一個config.h文件和一堆常量。 在main.cpp中,它將其中一個常量設置爲某個值,然後在util.cpp中調用一個函數。C++:文件之間不存在靜態變量
util.cpp也包含config.h,但由main.cpp設置的變量不具有相同的值。
代碼:
的config.h:
static int MAX_NUMBER_OF_TRAINING_DATA = 1000;
main.cpp中(主):
else if (strcmp(argv[i], "-mTrnData") == 0)
{
MAX_NUMBER_OF_TRAINING_DATA = atoi(argv[i + 1]);
cout << "Number of data sets to be generated: " << MAX_NUMBER_OF_TRAINING_DATA << "\n\n";
// prints what I tell it
}
和utils.cpp
cout << "Number of data sets generated: " << MAX_NUMBER_OF_TRAINING_DATA << "\n\n";
// prints the default value (in this case, 1000)
那麼,如何我是否修復這個問題,以便我可以擁有我的config.h文件在我的cpp文件中記住這些事件?
在Java中,您可以執行Config.NAME_OF_CONSTANT,因此,如果有一種方法可以在C++中執行此操作,那將是最大的。
我知道常量不應該改變,但是他們唯一一次改變的地方是在main()中讀取運行程序的參數時...在這之後它們不會改變。
改變值的變量很難被認爲是*常量*。 – 2011-03-31 16:27:08