我正在寫一個矩陣的計算類(用於練習的緣故),當我寫的方法來乘兩個矩陣的計算對象,我不得不檢查,如果某些條件得到滿足的矩陣乘法:如果某些條件沒有得到滿足,從方法返回什麼?
Matrix Matrix::mul(const Matrix &mat)
{
if(col != mat.row)
//we cannot multiply in this case
else
{
//create temp object result
//perform multiplication
return result;
}
}
現在我很好奇在做什麼,如果條件沒有得到滿足,因爲早在main.cpp中我會寫這樣的事:
Matrix a = b.mul(c);
現在,如果b和C不能乘什麼,我應該怎麼回報? 是引發異常的最好方法,只是強制使用該類的人發送兼容的矩陣,還有另一種更好的方法嗎?
返回'std :: optional',或拋出。 – Incomputable
如果您的矩陣具有固定的大小(和編譯時間常量),則可以將這些大小移動到模板參數中。然後(假設你的簽名是正確的),編譯器不會讓你乘以錯誤大小的矩陣:) – StoryTeller
它們是動態創建的,但是謝謝 – adadaae12313412