연산자 오버로딩에서 int**를 이용한 값 입력을 어떻게 하는지 모르겠습니다 ㅠㅠ
조회수 512회
#include <iostream>
using namespace std ;
class Matrix {
int** values;
int row, column;
public: Matrix(int row = 0, int column = 0) { this->row = row; this->column = column ; }
Matrix operator + (const Matrix &c) { return Matrix(row + c.row, column + c.column) ; }
Matrix operator * (const double val) { return Matrix(row * val, column * val) ; }
friend ostream& operator << (ostream& os, const Matrix& c) ;
friend ostream& operator >> (ostream& os, Matrix& c) ;
} ;
ostream& operator << (ostream& os, const Matrix& c) {
for(int i = 0; i < c.row; i++){
for(int j = 0; j < c.column; j++){
os << **(c.values) << '\t';
}
os << endl;
}
return os ;
}
ostream& operator >> (ostream& os, Matrix& c) {
int** value = NULL;
value = new int*;
for(int i = 0; i < (c.row)*(c.column); i++){
os >> &(*value);
}
c.values = value;
return os ;
}//////////도와주세요 ㅠ ㅠ
int main() {
Matrix m1(2, 2), m2(2, 2) ;
cin >> m1 ;
cin >> m2 ;
Matrix m3 = m1 + m2 ;
Matrix m4 = m3 * 10 ;
cout << m3 << endl ;
cout << m4 << endl ;
}
위와 같은 결과가 나오게 해야하는데, cin 부분과 cout부분을 어떻게 해야할지 감이 잘 안 옵니다 ㅜㅜ 이중포인터인 values에 어떻게 해야 cin으로 숫자 배열을 넣을 수 있을까요? 그리고 어떻게 해야 cout으로 출력할 수 있을까요?
댓글 입력