i am working with a matrix manipulation program...consi sts of a matrix class and its member functions..
i have also overloaded << and >>...so dat dey can read and print d whole matrix at one statement..
the code of these overloaded operators is something like this..
here i have received the variable matrix1 by reference...in main() i have used a variable matrix1 which is passed as follows :
matrix matrix1;
cin >> matrix1;
now...my question is :
wat if i want to pass a pointer variable which should be received by a reference...smt hing like this...
the overloaded function for pointer thing is coded as follows :
however my problem is when i execute the program...then while taking input for a pointer matrix...it just reads one value instead of all the values..but doesnt even print that single value..
i think there must be bug in those overloaded functions used for pointer variable.. :(
so please check out the functions and post the solution or your suggestions...
i have also overloaded << and >>...so dat dey can read and print d whole matrix at one statement..
the code of these overloaded operators is something like this..
Code:
// for >> (cin) : istream& operator >> (istream &read, matrix &mat) { for (int i = 0; i < mat.rows * mat.columns; ++i) read >> *(mat.element+i); return read; } // for << (cout) : ostream& operator << (ostream &print, matrix &mat) { for (int i = 0; i < mat.rows; ++i) { for (int j = 0; j < mat.columns; ++j) { print << *mat.element << " "; ++mat.element; } print << endl; } mat.element -= mat.rows * mat.columns; return print; }
matrix matrix1;
cin >> matrix1;
now...my question is :
wat if i want to pass a pointer variable which should be received by a reference...smt hing like this...
Code:
main() { matrix *matrix2; cin >> matrix2; //i aint sure that this statement is right...it may be cin >> *matrix2... }
Code:
for >> : istream& operator >> (istream &read, matrix *&mat) { for (int i = 0; i < mat->rows * mat->columns; ++i) read >> *(mat->element+i); return read; } // for << : ostream& operator << (ostream &print, matrix *&mat) { for (int i = 0; i < mat->rows; ++i) { for (int j = 0; j < mat->columns; ++j) { print << *mat->element << " "; ++mat->element; } print << endl; } mat->element -= mat->rows * mat->columns; return print; }
however my problem is when i execute the program...then while taking input for a pointer matrix...it just reads one value instead of all the values..but doesnt even print that single value..
i think there must be bug in those overloaded functions used for pointer variable.. :(
so please check out the functions and post the solution or your suggestions...
Comment