请C+ +高手解决!!!

来源:百度知道 编辑:UC知道 时间:2024/06/22 16:52:15
#include<iostream>
using namespace std;
class Matrix{
private:
int rows;
int lines;
int **Mp;
public :
Matrix(int row=0,int line=0)
{
lines=line;
rows=row;
Mp=new int *[lines];
for(int i=0;i<=lines-1;i++)
Mp[i]=new int[rows];
}//构造函数
~Matrix()
{
for(int i=lines-1;i>=0;i--)
delete[] Mp[i];
delete[] Mp;
}//析构函数
Matrix(Matrix &M)
{
lines=M.lines;
rows=M.rows;
Mp=new int *[lines];
for(int i=0;i<=lines-1;i++)
Mp[i]=new int[rows];
for(int i=0;i<=rows-1;i++)
for(int j=0;j<=lines-1;j++)
Mp[i][j]=M.Mp[i][j];
}//拷贝构造函数
void SetArray();
void Prin

你好

帮你运行了一下:

for(int i=0;i<=rows-1;i++)这句话中的i重复定义了,因为你在这句话的前面的循环语句for(int i=0;i<=lines-1;i++)
Mp[i]=new int[rows];

中已经定义过了i,所以重复了,只要把for(int i=0;i<=rows-1;i++)中的i变成其他的变量如for(int p=0;p<=rows-1;p++)就可以运行了

祝你好运!

编译器的提示呢?总要给点调试信息啊,否则几百行代码让别人读也过分了