簡體   English   中英

無法分配給重載的dereference(*)運算符

[英]Cannot assign to overloaded dereference (*) operator

我為我的模板類重載了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

我應該如何重載此運算符才能寫入指針?

只要給它T&作為返回類型。 然后你有一個左值。 現在的問題是你要返回指向的對象的副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM