无法分配给重载的dereference(*)运算符

mac*_*jjo 4 c++ templates pointers overloading operator-keyword

我为我的模板类重载了dereference运算符:

 template <class T> class Node {

 public:
     T *pointer;
     T operator*() { return *pointer; }
 };
Run Code Online (Sandbox Code Playgroud)

我希望能够写入main中的指针:

Node<int> n;
*n = 33;
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

我应该如何重载此运算符才能写入指针?

Seb*_*edl 10

只需将其T&作为返回类型.然后你有一个左值.现在的问题是你要返回指向的对象的副本.