c++函数重载的问题
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;
}
请问什么情况下会调用第二个方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用const修饰对象的时候
这代码有问题吧谁写的。。。