在我工作的C++代碼庫中,聲明常量的模式看起來像這樣。在頭文件或實現文件中定義常量的優點
// module_constants.h
#ifndef MODULE_CONSTANTS
#define MODULE_CONSTANTS
namespace module {
extern const int SOME_CONST;
}
#endif
// module_constants.cpp
#include "module_constants.h"
namespace module {
const int SOME_CONST = 1;
}
什麼是這種方法的優點,而不是定義在頭所有的常數值?
'const int SOME_CONST = 1;'在頭文件中就好了。沒有ODR問題,因爲'SOME_CONST'具有內部鏈接。 –
這也不會影響鏈接嗎?即如果你在'.cpp'和'.h'中改變了const的值,會發生什麼? –