I copied your code and duplicated youre problem.
The gdb core dump show the following backtrace infomation:
Core was generated by `./matrix'.
Program terminated with signal 11, Segmentation fault.
[New process 6139]
#0 0x0804880d in CDoubleMatrix::Minor (this=0xbfa04c84, mtx=0x8e60a40, row=0, column=0) at matrix.cpp:132
132 minorMtx[k][l] = mtx[i][j];
(gdb) bt
#0 0x0804880d in CDoubleMatrix::Minor (this=0xbfa04c84, mtx=0x8e60a40, row=0, column=0) at matrix.cpp:132
#1 0x08048a26 in CDoubleMatrix::Determinant (this=0xbfa04c84, mtx=0x8e60a40) at matrix.cpp:98
#2 0x08048a66 in CDoubleMatrix::Determinant (this=0xbfa04c84, mtx=0x8e603a8) at matrix.cpp:99
#3 0x08048bfd in CDoubleMatrix::Invert (this=0xbfa04c84, mtx=0x8e603a8) at matrix.cpp:54
#4 0x08048e19 in main () at matrix.cpp:181
(gdb) p k
$1 = 8
(gdb) p l
$2 = 0
(gdb) p i
$3 = 9
(gdb) p j
$4 = 1
(gdb) p minorMtx[8][0]
$5 = 0
(gdb) p mtx[9][1]
Cannot access memory at address 0x59
(gdb) p this->row
$6 = 10
(gdb) p mtx
$7 = (double **) 0x8e60a40
The debug infomation clearly shows the error code. I don't understand your code, but I think there is a clear logic bug in it.
And I guess the following code may be the source of core dump:
double** tempMtx=new double*[row-1];
for (int i=0;i<row-1;i++)
tempMtx[i]=new double[col-1];