Я написал этот код, чтобы перегружать унарные operator- на классе матрицы:Унарное operator-() нулевые значения - C++
const RegMatrix RegMatrix::operator-()const{
RegMatrix result(numRow,numCol);
int i,j;
for(i=0;i<numRow;++i)
for(j=0;j<numCol;++j){
result.setElement(i,j,(-_matrix[i][j]));
}
return result;
}
Когда я побежал мою программу с отладчиком в Visual Studio, он показал мне, что когда операция выполняется на двойном равна нулю, она вставляет матрицу результатов число -0.00000. Это какая-то странная функция VS-дисплея, или это то, над чем я должен обращаться осторожно?
Это должно помочь: http://en.wikipedia.org/wiki/Signed_zero – ereOn
Они по-прежнему сравнивают их, не так ли? –