-1

您好,我有一个使用指针实现 Matrix 类的任务。

    class matrixType{
      private:
        int **matrix;
        int numRows;
        int numColumns;
      public:
        istream& operator >>(istream& ins, const matrixType& source);
    }

我在使用输入运算符时遇到了麻烦!出于某种原因,这种运算符重载对我来说没有意义,但我还有一个功能,它还允许用户输入,这不是重载。

    void matrixType::setMatrix(){
      int i,k,value;
      cout << "Be prepared to enter values to be inserted into your matrix: " << endl;       
        for(i=0; i<rowSize; i++){
           for(k=0; k<columnSize; ++k){
             cout << "Value [" << i << "][" << k << "]: ";
             cin >> value;
             matrix[i][k]=value;
           }       
         }       
      cout << endl;
    }

有人可以帮助我输入运算符吗?
谢谢!

4

1 回答 1

3

输入运算符重载函数允许您将类或结构的对象直接用于函数,如cin. 这样,您可以通过编写输入对象的单个语句直接请求所有输入,它将输入所有值本身。

程序应该是这样的

class matrixType{
      private:
        int **matrix;
        int numRows;
        int numColumns;
      public:
        istream& operator>>(istream& input, const matrixType& source)
        {
            for(int i=0;i<numRows;i++)
                  for(int j=0;j<numColumns;j++)
                           input>>source.matrix[i][j];
            return input;
         }     
    }

现在您可以像这样直接使用 cin 输入值

matrixType A;
cin>>A;
于 2013-09-14T02:25:09.383 回答