Я использую библиотеку Eigen 3.3.7 в моем коде. Я могу создать и заполнить вектор данными в моем main()
следующим образом:
Vector3d H1(0.0, 0.0, 1.0);
Vector3d H2 = {0.0, 0.0, 1.0};
Matrix3d D(3,2); // Matrix is only initialised
Однако, если я сделаю то же самое в классе, я получу синтаксическую ошибку:
class data {
Vector3d H1(0.0, 0.0, 1.0); //syntax error
Vector3d H = {0.0, 0.0, 1.0}; //still works
MatrixXd D(3,2); //syntax error
};
Вопрос 1:
Почему я не могу использовать один и тот же синтаксис в теле класса?
Как определить матрицу 3 на 2 какатрибут data
с Eigen?
Вопрос 2:
Я понимаю, что H1(0.0, 0.0, 1.0)
версия вызывает параметрический конструктор, однако я не знаю, что происходитпод линией Vector3d H2 = {0.0, 0.0, 1.0};
. Так что же на самом деле делает? И почему это работает во втором случае?