(Overloading the Parentheses Operator)One nice example of overloading the function call operator () is to allow another form of double-array subscripting popular in some programming languages. Instead of saying
chessBoard[ row ][ column ]
for an array of objects, overload the function call operator to allow the alternate form
chessBoard( row, column )
Create a class DoubleSubscriptedArray that has similar features to class Array in Figs. 1– 2 At construction time, the class should be able to create an array of any number of rows and any number of columns. The class should supply operator() to perform double-subscripting operations. For example, in a 3-by-5 DoubleSubscriptedArray called a, the user could write a(1, 3) to access the element at row 1 and column 3. Remember that operator() can receive any number of arguments. The underlying representation of the double-subscripted array should be a single-subscripted array of integers with rows * columns number of elements. Function operator() shouldperform the proper pointer arithmetic to access each element of the array. There should be two versions of operator()—one that returns int&(so that an element of a DoubleSubscriptedArray can be used as an lvalue) and one that returns const int&. The class should also provide the following operators: ==, !=, =, << (for outputting the array in row and column format) and >> (for inputting the entire array contents).
Figure 1 Array class definition with overloaded operators.

Figure 2 Array class member- and friend-function definitions.




We need at least 10 more requests to produce the solution.
0 / 10 have requested this problem solution
The more requests, the faster the answer.