0 c++
我想定义某种物理常数的结构(结构?名称空间?类?),这对于我的程序是全局性的。这样做的目的是使我能够为常数提供简单直观的名称,同时在其他地方保护这些值。例如,我可以在此结构中将q定义为基本电荷,而不必担心在程序的其他地方意外地将q用作循环变量。我的想法是定义一个结构(在main.h中):
struct constants {
float q=1.6022e-19;
} _C;
Run Code Online (Sandbox Code Playgroud)
但这给了我错误
main.h:79: error: ISO C++ forbids initialization of member 'q'
main.h:79: error: making 'q' static
main.h:79: error: ISO C++ forbids in-class initialization of non-const static member 'q'
Run Code Online (Sandbox Code Playgroud)
我在这里和整个互联网上都进行了搜索,但没有找到答案。如果您知道其中之一,请重定向我。我对Stack Overflow和C / C ++还是相当陌生,因此感谢您的耐心配合。
一个解决方案是在“常量”名称空间中设置一组静态变量:
namespace Constants
{
static double constexpr Q = 1.3;
}
Run Code Online (Sandbox Code Playgroud)
引用变量,您可以执行以下操作:
Constants::Q
Run Code Online (Sandbox Code Playgroud)
您也可以在类或结构中定义静态变量,如果这样的话可以使代码更井井有条。