0

我正在尝试将二维数组传递给构造函数类

std::array<std::array<int, dimension>, dimension>

我做了一些搜索,我尝试使用模板..但不起作用

但是,我的代码产生以下错误:

Undefined symbols for architecture x86_64:
 "state::state<std::__1::array<int, 4ul>, 4ul>(int, std::__1::array<std::__1::array<int, 4ul>, 4ul> const&)", referenced 
from:
  _main in main-d76757.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

主要代码:

int main () {

  const int dimension = 4;
  std::array<int, dimension> j;
  std::array<std::array<int, dimension>, dimension> array;
  array[0][0] = 0;
  array[0][1] = 7;
  array[0][2] = 4;
  array[1][0] = 3;
  array[1][1] = 8;
  array[1][2] = 6;
  array[2][0] = 1;
  array[2][1] = 5;
  array[2][2] = 2;



  state t = state(dimension, array);

}

这里是构造函数的代码:

template<typename T, size_t N>
state::state(const int dim, std::array<T, N> const &array) : dimension(-1)
{
// DO STUFF

}
4

0 回答 0