明明在类里面声明了,类外定义了的函数怎么运行时说没有声明啊!!!

来源:百度知道 编辑:UC知道 时间:2024/05/03 08:48:15
小弟编了一个矩阵转置的程序,使用了类,在运行这个函数时竟报没有声名,下面是我的完整程序,其中除了转置函数其他的函数都经过检验正确了的哈!!!!
#include<iostream>
#include<stdio.h >
#include<cstdlib >
using namespace std;

class matrix
{
int const line; //矩阵的行
int const column; //矩阵的列
long double **matrip;
public:
matrix(int,int);
matrix(const matrix&);
~matrix(){for(int i=0;i<column;i++)delete []matrip[i]; delete []matrip;}
void inputm();
void outputm();
matrix& operator=(matrix&);
matrix verse(matrix); //矩阵转置
};

matrix::matrix(int l,int c):line(l),column(c) //初始化为0阵
{
matrip=new long double *[line];
for(int i=0;i<line;i++)
{
matrip[i]=new long double[column];
for(int j=0;j<column;j++)
matrip[i][j]=0.0;
}
}

matrix::matrix(const matrix& m):line(m.line),column(m.column)

matrix matrix::verse(matrix m)
{
matrix m2(this->column,this->line);
for(int i=0;i<this->line;i++)
for(int j=0;j<this->column;j++)
m2.matrip[j][i]=this->matrip[i][j];
return m2;
}
matrix matrix::verse(matrix m)
{
matrix m2(this->column,this->line);
for(int i=0;i<this->line;i++)
for(int j=0;j<this->column;j++)
m2.matrip[j][i]=this->matrip[i][j];
return m2;
}
你这个verse成员定义了两次?
而且main函数中的c=verse(a);
改为c=a.verse(a);