在我正在使用的C++代码库中,声明常量的模式看起来像这样.
// module_constants.h
#ifndef MODULE_CONSTANTS
#define MODULE_CONSTANTS
namespace module {
extern const int SOME_CONST;
}
#endif
Run Code Online (Sandbox Code Playgroud)
// module_constants.cpp
#include "module_constants.h"
namespace module {
const int SOME_CONST = 1;
}
Run Code Online (Sandbox Code Playgroud)
这种方法的优点是什么,而不是定义标题中的所有常量值?
我所知道的唯一优点是,您只需在更改常量值时重新编译单个cpp文件,而不是直接或间接包含头文件的每个文件.
当您提供动态链接库并希望在不重新编译实际应用程序的情况下对其进行修补时,这可能特别有用.
一些缺点是