重载成员函数以接收分配的值?

Overloading a member function to receive an assigned value?

我想创建一个 class 的两个方法来访问和修改该实例中的一些数据。

例如:

int val = image.at(row, col);
image.at(row, col) = 255;

有没有办法重载该函数,以便在调用时允许赋值 image.at(row,col)

您不一定需要为此编写 2 个方法。只要 at returns 一个可以赋值的值(即 l-value),相同的函数就可以访问和修改数据:

struct Image 
{
   int& at(int, int);
// ^^^^ 
};

但是,当您要访问其数据的对象是 const 对象时,您应该提供重载:

struct Image 
{
   int& at(int, int);
   int const& at(int, int) const;  // for const objects
};