您好我正在创建一个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]);
}
}
};
答案 0 :(得分:0)
试试这个:
int **get_matrix() const {
return reinterpret_cast<int **>(matrix);
}
或者这个:
int **get_matrix() const {
return (int **) matrix;
}
二维数组不能隐式转换为指向int
的指针,尽管两者之间有几个相似之处。但是,您可以强制转换为int **
。
你也可以(也可能应该)使用一个随时可用的C ++容器,而不是试图重新发明轮子。