double Matrix::operator()(int row, int col) {
std::cout << "() 1" << std::endl;
if (row >= _row || col >= _col) {
std::cout << "index out of range!" << std::endl;
return -1;
}
return _matrix[row][col];
}
double &Matrix::operator()(int row, int col) const {
std::cout << "() 2" << std::endl;
double init_value = -1;
if (row >= _row || col >= _col)
{
std::cout << "index out of range!" << std::endl;
return init_value;
}
init_value = _matrix[row][col];
// 因为声明为了const, 所以不能直接把_matrix[row][col]返回回去
return init_value;
}
请问什么情况下会调用第二个方法?
使用const修饰对象的时候