연산자 오버로딩에서 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으로 출력할 수 있을까요?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)