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