C++实现矩阵类,函数参数float实在不会

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。本次类实现一个矩阵类,基本定义如下:

class RMatrix
{
private:
      int rw;  //矩阵行数目
      int rc;  //矩阵列数目
      float *elmSet; //矩阵元素集合,其中 elmSet[i*rc+j]代表第i行,第j列的元素值
public:
    RMatrix();  //构造函数,令rw=0,rc=0,elmSet=0
    RMatrix(int row, int col);  //构造函数,令rw=row,rc=col,elmSet=new float[row*col] 元素值全为0
    ~RMatrix(); //析构函数,如果elmSet!=0,则delete [] elmSet
    float GetElem(int i, int j); //得到矩阵的元素值
void SetElem(int i, int j, float value); //设定矩阵的元素值,
int GetRow(); //得到矩阵的行数目,
int GetCol(); //得到矩阵的列数目,
void AugumentMatrix(); //对当前矩阵进行增广操作(即在右侧增加一列,该列的值全为0)
}

要求:
1) 初始化一个3*3的矩阵,并初始化其对角线上的值为1,其他值为0
2) 打印输出该矩阵来验证初始化结果是否准确
3) 调用AugumentMatrix,再打印输出该矩阵来验证初始化结果是否准确

RMatrix :: RMatrix(){rw=0;rc=0;elmSet=0;}
RMatrix :: RMatrix(int row, int col){rw=row;rc=col;elmSet=new float[row*col];}
RMatrix :: ~RMatrix(){
    for(int i=0;i<=rw*rc;++i){
        if(elmSet!=0){
            delete [] elmSet;
        }
    }
}
float RMatrix :: GetElem(int i, int j){
    for(int m=1;m<=i;++m){
        for(int n=1;n<=j;++n){
            cout<<elmSet[m*i+n];
            if(n==j) cout<<endl;
        }
    }
}
void RMatrix :: SetElem(int i, int j, float value){
    for(int m=1;m<=i;++m){
        for(int n=1;n<=j;++n){
            if(m==n) elmSet[m*i+n]=value;
        }
    }
}
int RMatrix :: GetRow(){
    int row;
    row=rw;
    return row;
}
int RMatrix :: GetCol(){
    int col;
    col=rc;
    return col;
}
int main(){
    int rw=3;
    int rc=3;
    float value=1.0f;
    RMatrix(); 
    RMatrix(rw, rc);    
    SetElem(rw, rc,**value**); 
    GetElem(rw, rc); 
}

显示SetElem 和GetElem was not declared in this scope,想问一下这个该怎么调整。

得先声明变量才行;
RMatrix mt(rw,rc);
mt.SetElem(0,0,1.1);


你的代码错误太多了。
代码修改如下:

#include <iostream>
using namespace std;

class RMatrix
{
private:
    int rw;  //矩阵行数目
    int rc;  //矩阵列数目
    float *elmSet; //矩阵元素集合,其中 elmSet[i*rc+j]代表第i行,第j列的元素值
public:
    RMatrix();  //构造函数,令rw=0,rc=0,elmSet=0
    RMatrix(int row, int col);  //构造函数,令rw=row,rc=col,elmSet=new float[row*col] 元素值全为0
    ~RMatrix(); //析构函数,如果elmSet!=0,则delete [] elmSet
    float GetElem(int i, int j); //得到矩阵的元素值
    void SetElem(int i, int j, float value); //设定矩阵的元素值,
    int GetRow(); //得到矩阵的行数目,
    int GetCol(); //得到矩阵的列数目,
    void AugumentMatrix(); //对当前矩阵进行增广操作(即在右侧增加一列,该列的值全为0)
};

RMatrix::RMatrix(){rw = 0;rc = 0;elmSet = 0;}
RMatrix::RMatrix(int row, int col)
{
    rw = row;
    rc = col;
    elmSet = new float[rw*rc];
}
RMatrix::~RMatrix(){if(elmSet) delete[] elmSet; elmSet = 0;}

float RMatrix::GetElem(int i, int j)
{
    if(elmSet && i*rc+j < rc*rw ) return elmSet[i*rc+j];
    else return 0;
}
void RMatrix::SetElem(int i, int j, float value)
{
    if(elmSet && i*rc+j < rc*rw)
        elmSet[i*rc+j] = value;
}
int RMatrix::GetRow(){return rw;}
int RMatrix::GetCol(){return rc;}
void RMatrix::AugumentMatrix(){} //
int main()
{
    int rw = 3;
    int rc = 3;
    float value = 1.0f;
    RMatrix mt(rw,rc);
    for (int i = 0;i<rw;i++)
    {
        for (int j = 0;j<rc;j++)
        {
            if(i==j)//对角线元素=1
                mt.SetElem(i,j,value);
            else
                mt.SetElem(i,j,0);
        }
    }
    return 0;
}

析构函数:
{
if(elmSet!=null)
{
delete []elmSet;
}
}

GetElem 需要返回值