簡體   English   中英

如何在不使用臨時變量的情況下取消引用返回指針的函數的返回值?

[英]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.

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