【发布时间】:2014-02-16 18:10:12
【问题描述】:
是否有任何可能的方法来重载 operator*,使其分配和观察函数被分开定义?
class my_class
{
private:
int value;
public:
int& operator*(){return value;}
};
int main()
{
my_class obj;
int val = 56;
*obj = val; // assign
val = *obj; // observe, same operator* is called
}
【问题讨论】:
-
让它返回一个代理(如
vector<bool>::iterator)。 -
您定义的操作员不是您要调用的操作员。您定义的那个是二进制的。它有两个参数,左侧是
my_class对象,右侧是int。您尝试在main中使用的那个是一元的。它只需要一个参数,就在它的右边。 -
@BenjaminLindley 哦.. 谢谢指点!
标签: c++ operator-overloading operator-keyword