我有一组用于物理模拟的C ++文件。对于这些模拟,我编写了一个名称空间,其中包含所有.cpp文件中使用的必要常量。现在我想运行一组不同的模拟。除了命名空间之外,代码在这方面是完全可移植的,但我需要更改命名空间中的常量。
命名空间是否可以使用set函数来设置这些行中的静态常量?如果没有,关于如何处理这个的任何其他想法?我想为最终的可执行文件设置一个输入标志,用于设置要运行的模拟,然后在内部为所有.cpp文件确定正确的常量。
答案 0 :(得分:3)
您提到静态,所以我假设您将这些常量包含在多个文件中static const double a = ...
。
我能想到的最简单,最简单的方法是让您触摸代码的其他部分,将常量更改为static const
而不是extern
,然后您可以有另一个包含它们的源文件,并公开一个函数来设置它们。
如果你想采用更加c ++ esque的方式,你可以定义一个接口类来提供访问常量值的函数,然后为你运行的每个不同的测试用例实现这个类。