您好我有一个使用指针实现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;
}
有人可以帮助我输入操作员吗? 谢谢!
答案 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;