访问矩阵类(C+;+;)中的二维数组(Visual Studio 2010) 我是一个比较新的编程学生,对C++非常陌生,所以请在我努力解决这个问题的同时耐心地对待我。

访问矩阵类(C+;+;)中的二维数组(Visual Studio 2010) 我是一个比较新的编程学生,对C++非常陌生,所以请在我努力解决这个问题的同时耐心地对待我。,c++,arrays,visual-studio,visual-studio-2010,matrix,C++,Arrays,Visual Studio,Visual Studio 2010,Matrix,我试图用一些基本函数来创建一个矩阵类来改变它。在矩阵类中创建的对象应为100x100个二维浮点数数组。我应该能够将此数组中特定位置的值更改为另一个值。有关守则如下: //in the .h file class MatrixC { private: float matrix[100][100]; public: void initializeMatrix(MatrixC); void printMatrix(Ma

我试图用一些基本函数来创建一个矩阵类来改变它。在矩阵类中创建的对象应为100x100个二维浮点数数组。我应该能够将此数组中特定位置的值更改为另一个值。有关守则如下:

    //in the .h file
    class MatrixC
    {
    private:
       float matrix[100][100];

    public:
       void initializeMatrix(MatrixC);
       void printMatrix(MatrixC);
       void setValue(MatrixC, float, int row, int column);
       float getValue(MatrixC, int row, int column);
    }

   //in the .cpp file
   void setValue(MatrixC matrix, float value, int row, int column)
   {
      matrix[row][column] = value; //ERROR LINE
   }
我在上面指出的行中得到以下错误,该行中的第一个括号突出显示:“MatrixC矩阵-没有运算符“[]”与这些操作数匹配。”

我还得到了关于同一行中“=”的错误

在谷歌搜索了一番之后,我一辈子都不知道如何解决这个问题 "[]". 关于“=”的问题似乎是因为编译器认为“矩阵[行][列]”和“值”是不同的数据类型,但两者都指浮点。我怀疑一旦“[]”的问题得到解决,这个问题就会得到解决


我是否不正确地访问MatrixC类中的2D数组?如果是这样的话,我不知道该怎么做。如果没有,我不知道问题出在哪里。

您正在使用
矩阵
对象作为数组,而他不是。 如果要使用[]运算符, 你应该让它超载。 更多关于重载的信息

如果不希望重载运算符,则应创建一个返回实际数组成员的函数(或将其公开) 然后更改值

顺便说一下,我认为您可能需要更改矩阵变量的所有函数签名,并获得一个指向对象的指针,该指针将允许实际更改,而不仅仅是发送对象的副本。 阅读更多有关参考资料和指针的信息以了解