Eigen:Vector3d 变量初始化遇到的问题
2024.2.22 日 ,在使用 Eigen:Vector3d 这个类型的 变量,在类中进行初始化时 遇到了如下问题:
首先在类的声明内部,是不能声明完,再给变量赋值的,不管是 Eigen:Vector3d 类型变量,还是float 类型变量
例如下面的是不允许的:
class A
{A();float leash_xy ;leash_xy = 1;//float leash_xy = 1; //这样是可以的
}
会报这样的错误
error: ‘leash_xy’ does not name a type
也就是说如果希望什么的变量有初始值,那么需要在声明时就进行初始化。
Eigen:Vector3d 这个类型的 变量 在类定义内初始化遇到的问题是 :
Eigen::Vector3d a(0,0,1); //这样就不行
这样会报
error: expected identifier before numeric constant
110 | Eigen::Vector3d a(0,0,1);
可能是把a当做函数了?
如何需要初始化 要以下面的这样方式
Eigen::Vector3d a = Eigen::a(0,0,1); // 这样可以
在函数内部是可以 Eigen::Vector3d a(0,0,1) 这样初始化的。