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

How do I dereference the return value of a function returning a pointer without using a temporary variable?

本文关键字:引用 取消 情况下 返回 指针 返回值 函数 变量      更新时间:2023-10-16

C++菜鸟在这里。

所以,这是我class DbHelper的成员函数:

QSqlQueryModel* getCourses();

现在,每当我在QSqlQueryModel courses是成员的class MyModel这样做时:

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();