1 #include <Eigen/Core> 2 #include <iostream> 3 4 class MyVectorType : public Eigen::VectorXd 5 { 6 public: MyVectorType(void)7 MyVectorType(void):Eigen::VectorXd() {} 8 9 // This constructor allows you to construct MyVectorType from Eigen expressions 10 template<typename OtherDerived> MyVectorType(const Eigen::MatrixBase<OtherDerived> & other)11 MyVectorType(const Eigen::MatrixBase<OtherDerived>& other) 12 : Eigen::VectorXd(other) 13 { } 14 15 // This method allows you to assign Eigen expressions to MyVectorType 16 template<typename OtherDerived> operator =(const Eigen::MatrixBase<OtherDerived> & other)17 MyVectorType& operator=(const Eigen::MatrixBase <OtherDerived>& other) 18 { 19 this->Eigen::VectorXd::operator=(other); 20 return *this; 21 } 22 }; 23 main()24int main() 25 { 26 MyVectorType v = MyVectorType::Ones(4); 27 v(2) += 10; 28 v = 2 * v; 29 std::cout << v.transpose() << std::endl; 30 } 31