我为我的模板类重载了取消引用运算符:
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
我应该如何重载此运算符才能写入指针?
最佳答案
只要给它 T&
作为返回类型。然后你有一个左值。现在的问题是您要返回指向的对象的拷贝。
关于c++ - 无法分配给重载的取消引用 (*) 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354375/