DEV Community

Cover image for ++ Operator Overloading for a Matrix using Friend function in C++
Yash Desai
Yash Desai

Posted on

3 1

++ Operator Overloading for a Matrix using Friend function in C++

Define a class named "Matrix"

#include <iostream>
using namespace std;

class Matrix
{
private:
    int numbers[3][3];

public:
    void setNumbers(int n[][3]);
    void getNumbers();

    friend Matrix operator++(Matrix);
};
Enter fullscreen mode Exit fullscreen mode

Implement void setNumbers(int n[][3])

void Matrix::setNumbers(int n[][3])
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            numbers[i][j] = n[i][j];
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Implement void getNumbers()

void Matrix::getNumbers()
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << numbers[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl;
}
Enter fullscreen mode Exit fullscreen mode

Implement Matrix operator++(Matrix n)

Matrix operator++(Matrix n)
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            n.numbers[i][j] = ++(n.numbers[i][j]);
        }
    }
    return n;
}
Enter fullscreen mode Exit fullscreen mode

Implement int main()

int main()
{

    Matrix matrix;
    int numbers[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9},
    };

    matrix.setNumbers(numbers);
    matrix.getNumbers();

    matrix = ++matrix;

    matrix.getNumbers();

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Available on YouTube

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (1)

Collapse
 
dynamicsquid profile image
DynamicSquid

Couldn't you do:

n.numbers[i][j] = ++(n.numbers[i][j]);

++(n.numbers[i][j]);
Enter fullscreen mode Exit fullscreen mode

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more