有没有办法根据构造函数的输入类型指定类成员的类型?

时间:2017-05-18 14:54:18

标签: c++ constructor

我正在使用矩阵库(Eigen),其中矩阵的大小会影响矩阵的类型。我正在尝试创建一个使用构造函数初始化的类,该构造函数接受矩阵并将其复制到成员矩阵。由于这是一个库,我想这样做,以便用户在初始化我的矩阵类时不必知道矩阵的大小(因为它们的矩阵可能来自另一个文件) 基本上我想要类似下面的代码,其中 unknownType 在构造时采用 someType 的形式

class Matrix{
  private: 
      unknownType m1;
  public:
      Matrix(someType m2): m1(m2){}
 };

1 个答案:

答案 0 :(得分:0)

@BenSteffan是对的。 它是为哪些模板制作的。

这是一个绝对的玩具示例。

#include <iostream>

template<typename ELEMENT_TYPE>
class Matrix {
    private:
        ELEMENT_TYPE element;
    public:
       Matrix(ELEMENT_TYPE value):element(value){}

       ELEMENT_TYPE get(){
           return element;
       }
};


int main() {
    Matrix<double> dmatrix(78.7);
    Matrix<int> imatrix(7000);

    std::cout<<dmatrix.get()<<' '<<imatrix.get()<<std::endl;

    return 0;
}