如何在不使用临时变量的情况下取消引用返回指针的函数的返回值?

时间:2018-09-19 14:06:23

标签: c++ qt

C ++菜鸟在这里。

因此,这是我的class DbHelper的成员函数:

QSqlQueryModel* getCourses();

现在,每当我在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进行验证,结果我真的不能。在整个下午学习指针和参考时,我的想法真的变得一团糟。谢谢大家。

1 个答案:

答案 0 :(得分:5)

QSqlQueryModel类的作者很可爱,并且聪明地禁止复制该对象的实例。

该类成员应为指针类型:

QSqlQueryModel* courses;

因为文档指出您不拥有与指针关联的内存。然后您进行简单设置

this->courses = dbHelper->getCourses();