我有一个定义一些数组的类。
点数.hpp
class Points {
public:
static constexpr std::array< double, 1 > a1 = { {
+0.0 } };
static constexpr std::array< double, 2 > a2 = { {
-1.0 / std::sqrt( 3.0 ),
+1.0 / std::sqrt( 3.0 ) } };
};
然后我的主文件使用这些数组。
主文件
#include "Points.hpp"
int main()
{
// Example on how to access a point.
auto point = Points::a2[0];
// Do something with point.
}
当我使用 C++11 和 g++ 4.8.2 编译我的代码时,我收到以下链接器错误:
undefined reference to `Points::a2'
我试图创建一个 Points.cpp 文件,以便编译器可以从中创建一个目标文件。
点数.cpp
#include "Points.hpp"
但这并没有解决链接器错误。
我的印象是可以在类声明中将变量初始化为 C++11 中的静态 constexpr,然后按照我的方式访问它们,如以下问题所示:https ://stackoverflow.com /a/24527701/1991500
我是否需要为 Points 创建一个构造函数,然后实例化该类?我究竟做错了什么?
任何反馈表示赞赏!谢谢!