返回整数矩阵

时间:2015-09-25 14:55:25

标签: c++ matrix

您好我正在创建一个Matrix对象,它是int[3][3]的包含。

我想添加一个get_matrix()函数,它返回对象本身或指向它的指针,但我不能。 日食说:

  

Type无法将'int(*)[3] [3]'转换为'int **'

enter code here
class Matrix
{
  private:
  int matrix[3][3];

  public:

  void set_matrix()
  {
      int c, d;
      printf("Enter the elements of first matrix1\n");

      for (c = 0; c < n_rows; c++)
        for (d = 0; d < n_column; d++)
          scanf("%d", &matrix[c][d]);
  }

  int get_matrix(){
      return matrix;
  }

  void output_matrix()
  {
      int c, d;
        for (c = 0; c < n_rows; c++) {
            printf("\n");
          for (d = 0; d < n_column; d++)
            printf("%d\t", matrix[c][d]);
        }
  }
};

1 个答案:

答案 0 :(得分:0)

试试这个:

int **get_matrix() const {
    return reinterpret_cast<int **>(matrix);
}

或者这个:

int **get_matrix() const {
    return (int **) matrix;
}

二维数组不能隐式转换为指向int的指针,尽管两者之间有几个相似之处。但是,您可以强制转换为int **

你也可以(也可能应该)使用一个随时可用的C ++容器,而不是试图重新发明轮子。