Our Android App Also Got an Upgrade. Download now!

C++ Matrix Multiplication using OOP

matrix_multiplication_oop.txt

File size: 1.35 KB

File content type: text/plain

Category: Practical Files

Subject: Object Oriented Programming

#include<iostream>

using namespace std;

class Matrix {

private:
    int a[10][10], row, col;

public:
    Matrix(int row = 10, int col = 10) {
        this->row = row;
        this->col = col;
    }

    void getData() {
        cout << "Enter " << (row * col) << " elements:\n";
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                cin >> a[i][j];
            }
        }
    }

    void print() {
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                cout << a[i][j] << "\t";
            }
            cout << endl;
        }
    }

    // Multiply matrix of current instance with the argument matrix
    Matrix multiply(Matrix b) {
        if (col != b.row) {
            cout << "Matrices cannot be multiplied. Argument Matrix returned\n";
            return b;
        }

        Matrix ans(row, b.col);

        for (int i = 0; i < row; i++) {
            for (int j = 0; j < b.col; j++) {
                ans.a[i][j] = 0;
                for (int k = 0; k < b.row; k++) {
                    ans.a[i][j] += a[i][k] * b.a[k][j];
                }
            }
        }

        return ans;
    }

};

int main() {
    Matrix a(2, 3);
    a.getData();
    a.print();

    Matrix b(3, 2);
    b.getData();
    b.print();

    Matrix c = a.multiply(b);
    c.print();
    return 0;
}

 

Related searchs: Matrix Operations in C++ using class

Last Updated: July 16, 2022