使用非基本构造函数

时间:2017-02-12 13:36:23

标签: c++ xcode templates generic-programming

我有一个非常简单的矩阵类,其中包含以下构造函数:

template <typename Type>
SimpleMatrix<Type>::SimpleMatrix(const int &rows, const int &cols, const Type &val) {
    for (int i = 0; i < rows; i++) {
        vector<Type> col_vec(cols, val);
        mat.push_back(col_vec);
    }
}

简单,如果我尝试通过执行以下操作从main.cpp调用它:

SimpleMatrix<double> matrix(1,1,0.5);

编译器抛出众所周知的错误:

Undefined symbols for architecture x86_64:
  "Matrix::SimpleMatrix<double>::SimpleMatrix(int const&, int const&, double const&)", referenced from:
      _main in main.o
  "Matrix::SimpleMatrix<double>::~SimpleMatrix()", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在这种情况下,使用重载构造函数的方式是不是?我开始认为这是一个红鲱鱼,我的XCode正在播放!

0 个答案:

没有答案