C++ 无法分配给重载的取消引用(*)运算符

C++ 无法分配给重载的取消引用(*)运算符,c++,templates,pointers,overloading,operator-keyword,C++,Templates,Pointers,Overloading,Operator Keyword,我已重载模板类的取消引用运算符: template <class T> class Node { public: T *pointer; T operator*() { return *pointer; } }; 我应该如何重载此运算符才能写入指针?只需将其T&作为返回类型即可。那么你有一个左值。现在的问题是,您正在返回指向的对象的副本。好的,这是可行的,我只是没有为指针分配内存,现在它可以使用t& Node<int> n; *n = 33;

我已重载模板类的取消引用运算符:

 template <class T> class Node {

 public:
     T *pointer;
     T operator*() { return *pointer; }
 };

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

只需将其
T&
作为返回类型即可。那么你有一个左值。现在的问题是,您正在返回指向的对象的副本。

好的,这是可行的,我只是没有为指针分配内存,现在它可以使用t&
Node<int> n;
*n = 33;
lvalue required as left operand of assignment