Matrix Class输入操作符重载

时间:2013-09-14 02:05:44

标签: c++ matrix operator-overloading

您好我有一个使用指针实现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;
    }

有人可以帮助我输入操作员吗? 谢谢!

1 个答案:

答案 0 :(得分: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;