Actually I spoke with my instructor after this and found out that there was nothing wrong with my code at all. The problem was with this right here:
Code:
for (rowIdx = 0; rowIdx < A.NRows(); rowIdx++)
{
for (colIdx = 0; colIdx < A.NCols(); colIdx++)
fout << A[rowIdx][colIdx] << '\t'; \\this uses the '<<' operator for a double not the class
}
Since the "<<" operator was overloaded for class functions I was under the impression that this would be the operator used... However after explaining it to me, my instructor made me realize that at this level, the "<<" operator is outputing a double and not a class... Since this is the case, my output was correct, but the formatting was wrong...

go figure...
Anywho, I also found out that my way, although it works, has the possibility of overwritting the data in the array location. For correctness, I need to use the following:
Code:
//In class
// overloaded for non-constant arrays
double* &operator [](int idx)
// overloaded for constant arrays
const double* &operator [](int idx) const
// In implementation
//overloaded for nonconstant arrays
double* &Matrix::operator[](int index)
{
assert(0 <= index && index < arraySize);
return(list[index]); //return a pointer of the array component
}
//overloaded for constant arrays
const double* &Matrix::operator[](int index) const
{
assert(0 <= index && index < arraySize);
return(list[index]); //return a pointer of the array component
}
Sorry for the wild goose chase...
Thanks for your help,
-sage-