【发布时间】:2015-12-10 10:49:54
【问题描述】:
声明 const 全局变量已被证明有助于确定 API 的某些功能参数。例如,在我的 API 上,数值精度运算符的最小阶数是 2;因此,我声明:
const int kDefaultOrderAccuracy{2};
作为一个全局变量。将其设为描述这些运算符的类的 static const 公共数据成员会更好吗?一般来说,什么时候选择一个比另一个更好?
【问题讨论】:
-
您能多说几句关于已被证明对确定一些功能参数很有用吗?
-
...默认参数呢?
-
这取决于你的API,但我认为一个常见的方法如下。如果它只在一个类中使用,则使其成为静态数据成员或成员
enum。如果在整个 API 中使用它,请使用宏或枚举,f.ex。enum class OrderAccuracy { kDefault = 2, /* ... */ };.
标签: c++11 global-variables declaration static-members linkage