Somar dois objetos em c++

Eu criei uma classe que cria uma matriz bidimensional e adiciona valores aleatórios a ela, e preciso criar uma função que receba um objeto a dessa classe e some com um objeto b, meu código é esse

#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <random>

class Matrix{
    private:
        int cols;
        int rows;
        

    public:
        Matrix(int cols, int rows)
        {
            this -> cols = cols;
            this -> rows = rows;
			int m[cols][rows];
			

            for (int i = 0; i < rows; i++)
            {

                
				for (int j = 0; j < cols; j++)
				{
					
					
					m[i][j] =random_generator();
					
				}
				

            }
			for (int i = 0; i < rows; i++)
			{
				for (int j = 0; j < cols; j++)
				{
					std::cout << m[i][j] << " ";
				}
				std::cout << "\n";
				
			}
			



        }
		int random_generator(){
    		std::random_device r;
    		std::default_random_engine e1(r());
   			std::uniform_int_distribution<int> uniform_dist(0, 100);
    		return uniform_dist(e1);
		}
		static void add(Matrix a , Matrix  b)
		{
			
		}



};

Na função add queria saber se tinha como fazer algo parecido com isso:

static void add(Matrix a , Matrix  b)
		{
			Matrix matrix(A.rows, A.cols);
     		        Matrix matrix1(B.rows, B.cols);
                        Matrix r(matrix1.A + matrix.A, matrix1.B + matrix.B);
               }