Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Question: Hello, i am working on a Matrix class with overloading operators.

ID: 3820795 • Letter: C

Question

C++ Question:

Hello, i am working on a Matrix class with overloading operators. I am currently stuck on initializing the 2d array in the constructors and also stuck on the operator<< overloading. I have a class with this as one of the members:

friend ostream& operator<<(ostream&, const Matrix&); // In matrix class

ostream& operator <<(ostream& lhs, const Matrix& rhs) // Function itself
{
lhs << rhs.matrixArray[2][2];
return lhs;
}

This is not correct. this psuedo code should be something like:

for i:

      for j:

               lhs<<array[i][j]

Explanation / Answer

The subscript operator [] is normally used to access array elements.
This operator can be overloaded to enhance the existing functionality of C++ arrays.
Following example explains how a subscript operator [] can be overloaded.

#include <iostream>
using namespace std;
const int SIZE = 10;

class safearay
{
private:
int arr[SIZE];
public:
safearay()
   {
register int i;
for(i = 0; i < SIZE; i++)
       {
arr[i] = i;
}
}
      
int &operator[](int i)
   {
if( i > SIZE )
       {
cout << "Index out of bounds" <<endl;
// return first element.
return arr[0];
}
return arr[i];
}
};

int main()
{
safearay A;

cout << "Value of A[2] : " << A[2] <<endl;
cout << "Value of A[5] : " << A[5]<<endl;
cout << "Value of A[12] : " << A[12]<<endl;

return 0;
}

Operator overloading allows you to define the way operator works (the way you want).

In the above example, ++ operator operates on object to increase the value of data member count by 1.

void operator ++()
{
count = count+1;
}
However, if you use the following code. It decreases the value of count by 100 when ++ operator is used.

void operator ++()
{
count = count-100;
}
This may be technically correct. But, this code is confusing and, difficult to understand and debug.

It's your job as a programmer to use operator overloading properly and in consistent way.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote