我的模板类重载了dereference运算符:
template <class T> class Node {
public:
T *pointer;
T operator*() { return *pointer; }
};
我希望能够写入main中的指针:
Node<int> n;
*n = 33;
但是我收到了这个错误:
lvalue required as left operand of assignment
如何重载此运算符以便能够写入指针?
答案 0 :(得分:10)
只需将T&
作为返回类型。然后你有一个左值。现在的问题是你要返回指向的对象的副本。