问题描述
例如:
int val = image.at(row,col);
image.at(row,col) = 255;
是否可以重载该函数,以便在调用image.at(row,col)
时允许赋值?
解决方法
您不必为此编写2个方法。只要at
返回可以分配给它的值(即l值),相同的函数就可以访问和修改数据:
struct Image
{
int& at(int,int);
// ^^^^
};
但是,当要访问其数据的对象是const对象时,您应该提供一个重载:
struct Image
{
int& at(int,int);
int const& at(int,int) const; // for const objects
};