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

C++ 有没有办法根据构造函数的输入类型指定类成员的类型?,c++,constructor,C++,Constructor,我正在使用一个矩阵库(Eigen),其中矩阵的大小会影响矩阵的类型。我试图创建一个类,该类用一个构造函数初始化,该构造函数接受一个矩阵并将其复制到成员矩阵。由于这是一个库,我希望这样做,以便用户在初始化我的矩阵类时不必知道矩阵的大小(因为他们的矩阵可能来自另一个文件) 基本上我想要下面的代码,其中unknownType在构造时采用某种类型的形式 class Matrix{ private: unknownType m1; public: Matrix(someT

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

class Matrix{
  private: 
      unknownType m1;
  public:
      Matrix(someType m2): m1(m2){}
 };
@本斯特凡是对的。 这就是制作模板的目的

这里有一个绝对有趣的例子

#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;
}
#包括
模板
类矩阵{
私人:
元素\ U型元素;
公众:
矩阵(元素类型值):元素(值){
元素类型get(){
返回元素;
}
};
int main(){
矩阵矩阵(78.7);
矩阵imatrix(7000);

std::你有没有研究过模板?它们是你问题的解决方案。你的代码显示的是模板。但我想你需要类型擦除技术?所以我想避免使用模板的原因是因为你仍然必须指定类型。我想知道是否有一种方法可以根据“值”推断类型您在上面的构造函数中使用的变量,而不是在每次使用构造函数之前指定或,这取决于编译器的最新状态。。。