Home Forums C Programming cin, cout, matrix, pointers and references :(

Viewing 1 reply thread
  • Author
    Posts
    • #2081
      Deepak
      Participant

      i am working with a matrix manipulation program…consists 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..


      // 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;
      }

      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…smthing like this…


      main()
      {
      matrix *matrix2;
      cin >> matrix2; //i aint sure that this statement is right...it may be cin >> *matrix2...
      }

      the overloaded function for pointer thing is coded as follows :

      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…

    • #3367
      Humayan
      Participant

      Can you post the whole code?

Viewing 1 reply thread
  • The forum ‘C Programming’ is closed to new topics and replies.