Operator Overloading

  • + 1 comment

    Could someone tell me what wrong with the below code:

    #include <cmath>
    #include <cstdio>
    #include <vector>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    class Matrix {
        private:
        vector<vector<int>> A1;
        public: 
        Matrix(int N,int M){
        A1.resize(N,vector<int>(M));
        //vector<vector<int>> A1(N,vector<int>(M)),A2(N,vector<int>(M));
        for (int i=0;i<N;i++){
            for (int j=0;j<M;j++){
                cin>> A1[i][j];
            }
        }
     
        }
        Matrix operator+ (Matrix const &obj){
            int N=A1.size();
            int M=A1[0].size();
            Matrix res(N,M);
        //vector<vector<int>> res(N,vector<int>(M));
        for (int i=0;i<N;i++){
            for (int j=0;j<M;j++){
                
                res.A1[i][j]=A1[i][j]+obj.A1[i][j];
                cout<<res.A1[i][j]<<" ";
            }
            cout<<endl;
        }
        return res;
        }
    };
    
    int main() {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT */ 
        int T,N,M;
        cin>>T;
        cin>>N>>M;
        
        Matrix A1(N,M);
        Matrix A2(N,M);
        Matrix res=A1 + A2;
    return 0;
    }