[英]How do I dereference the return value of a function returning a pointer without using a temporary variable?
C ++菜鳥在這里。
因此,這是我的class DbHelper
的成員函數:
QSqlQueryModel* getCourses();
現在,每當我在QSqlQueryModel courses
class MyModel
其中QSqlQueryModel courses
是成員)中執行此操作時:
this->courses = *(dbHelper->getCourses()); // problem here ... this is inside a member function of MyModel
Visual Studio說
函數...運算符=不能被引用...它是一個已刪除的函數
當然我可以這樣做:
QSqlQueryModel* q = dbHelper->getCourses();
this->courses = *q;
但是我認為聲明另一個變量只是為了取消引用可能是多余的。 有沒有更短的方法?
編輯:
剛剛用VS驗證過,事實證明我真的做不到。 在整個下午學習指針和參考時,我的想法真的變得一團糟。 謝謝大家
QSqlQueryModel
類的作者很可愛,並且巧妙地禁止復制該對象的實例。
類成員應為指針類型:
QSqlQueryModel* courses;
因為文檔指出您不擁有與指針關聯的內存。 然后你瑣碎地設置
this->courses = dbHelper->getCourses();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.