Guest User

Untitled

a guest
May 24th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. cout<<m1+m2<<endl;
  2.  
  3. E0349: No operator << matches these operands type are: std::ostream << Matrix
  4.  
  5. Matrix m = m1 + m2;
  6. cout<<m<<endl;
  7.  
  8. ostream& operator<< (ostream &os,Matrix& m)
  9. {
  10. if (m.valid)
  11. {
  12. os << '|';
  13. for (int i = 0; i < m.rowNum; i++)
  14. {
  15. for (int j = 0; j < m.colNum; j++)
  16. {
  17. os << m.matrix[i][j];
  18. if (j < m.colNum - 1)
  19. {
  20. os << ',';
  21. }
  22. }
  23. os << '|';
  24. }
  25. }
  26. else
  27. {
  28. os << "invalid matrix!";
  29. }
  30. return os;
  31. }
  32.  
  33. Matrix Matrix::operator+ (Matrix &m)
  34. {
  35. Matrix* answer = new Matrix(m); //allocating space
  36. if (valid && m.valid)//if they are both valid
  37. {
  38. if (colNum == m.colNum&&rowNum == m.rowNum) //if are from same size
  39. {
  40. answer->valid = true; //valid set to be true
  41. for (int i = 0; i < rowNum; i++) //going over the matrix
  42. {
  43. for (int j = 0; j < colNum; j++)
  44. {
  45. answer->matrix[i][j] += matrix[i][j]; //adding data
  46. }
  47. }
  48. }
  49. else
  50. {
  51. //clearing data
  52. delete answer;
  53. answer = new Matrix();
  54. }
  55. }
  56. else
  57. {
  58. //clearing data
  59. delete answer;
  60. answer = new Matrix();
  61. }
  62. return *answer;
  63. }
  64.  
  65. Matrix Matrix::operator= (Matrix &m)
  66. {
  67. int rows = m.rowNum; //putting cols and rows from the data
  68. int cols = m.colNum;
  69. if (m.valid)
  70. {
  71. matrix = new int*[rows]; //defining the matrix - first allocatin space for rows
  72. for (int i = 0; i < rows; i++) //now allocating space for cols
  73. {
  74. matrix[i] = new int[cols];
  75. }
  76. for (int i = 0; i < rows; i++) //now going over the matrix and putting the data in
  77. {
  78. for (int j = 0; j < cols; j++)
  79. {
  80. matrix[i][j] = m.matrix[i][j];
  81. }
  82. }
  83. }
  84. //putting the rows and cols data
  85. rowNum = m.rowNum;
  86. colNum = m.colNum;
  87. valid = m.valid; //setting to the right valid type
  88. return *this;
  89. }
  90.  
  91. class Matrix
  92. {
  93. private:
  94. bool valid;
  95. int** matrix;
  96. int rowNum;
  97. int colNum;
  98.  
  99. ostream& operator<< (ostream &os,Matrix& m)
  100.  
  101. ostream& operator<< (ostream &os,const Matrix& m)
Add Comment
Please, Sign In to add comment