Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用c+打印出矩阵+;,类方法问题_C++_Matrix - Fatal编程技术网

C++ 用c+打印出矩阵+;,类方法问题

C++ 用c+打印出矩阵+;,类方法问题,c++,matrix,C++,Matrix,我想用类和方法显示一个矩阵。我得到了“C:\Users\PC\AppData\Local\Temp\cc41EMS5.o:lab6.cpp:(.text+0x3d6):对'Matrix::Matrix()的未定义引用” collect2.exe:错误:ld返回了1个“退出状态”错误。我猜这是因为printMatrix方法(它在main中不是一种方法),但我不知道如何修复它。 代码如下: #包括 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 类矩阵{ 公众: 矩阵(); 矩

我想用类和方法显示一个矩阵。我得到了“C:\Users\PC\AppData\Local\Temp\cc41EMS5.o:lab6.cpp:(.text+0x3d6):对'Matrix::Matrix()的未定义引用” collect2.exe:错误:ld返回了1个“退出状态”错误。我猜这是因为printMatrix方法(它在main中不是一种方法),但我不知道如何修复它。 代码如下:

#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
类矩阵{
公众:
矩阵();
矩阵(int rowSize,int colSize);
void setSize(int rowSize、int colSize);
字符串打印矩阵(int rowSize,int colSize);
void free_data();
无效分配_数据();
私人:
整数行大小;
int colSize;
双**p;
//向量矩阵(行大小、向量(列大小));
};
无效矩阵::分配_数据(){
p=新的双*[行大小];
对于(int i=0;i行大小=行大小;
此->colSize=colSize;
分配_数据();
对于(int i=0;i>矩阵[i][j];
}

您是否可以声明两个构造函数:

但你只定义了一个:

相反,由于缺少定义,请去掉
Matrix::Matrix()
的声明,并使用包含两个参数的构造函数:

int main()
{
    int rowSize;
    int colSize;
    cout<<"Enter size of rows and columns: ";
    cout<<"Rows: ";
    cin>>rowSize;
    cout<<"Cols: ";
    cin>>colSize;

    Matrix m(rowSize, colSize);

    m.printMatrix(rowSize,colSize);

return 0;
}
intmain()
{
整数行大小;
int colSize;

cout>matrix[i][j];
毫无意义。正确的语法是
matrix[i][j]=0;

您定义并使用无参数矩阵构造函数(matrix();),但未实现它

你可以:

  • 删除Matrix()定义并使用您定义的构造函数(矩阵m(rowSize,colSize);)

  • 实现无参数构造函数,使用一些预定义值创建矩阵。您可以使用委托构造函数调用接受参数的构造函数

    Matrix::Matrix() : Matrix(4,4) {
    }
    

我建议第一个选项

0>>matrix[I][j];
第73行中的这是什么意思??
matrix::printMatrix
应该是
void
类型,因为您没有从中返回任何内容!
Matrix m;
int main()
{
    int rowSize;
    int colSize;
    cout<<"Enter size of rows and columns: ";
    cout<<"Rows: ";
    cin>>rowSize;
    cout<<"Cols: ";
    cin>>colSize;

    Matrix m(rowSize, colSize);

    m.printMatrix(rowSize,colSize);

return 0;
}
Matrix::Matrix() : Matrix(4,4) {
}