sqlite “'QSqlQuery'已过时”警告是什么意思?

v2g6jxz6  于 2023-02-09  发布在  SQLite
关注(0)|答案(1)|浏览(423)

我有一个DB类,它有几个方法,通常我是这样使用它们的:

QSqlQuery DB::myfunc(){
  QSqlQuery query;
  ...

  return query;
}

我意识到我正在所有方法中创建一个QSqlQuery对象,所以我在header中将其创建为私有成员,并希望在所有方法中使用相同的query变量。

'QSqlQuery' is deprecated: QSqlQuery is not meant to be copied. Use move construction instead.
:30:5: note: 'QSqlQuery' has been explicitly marked deprecated here

警告当我这样做的时候。如果我这样使用它有什么问题吗?
每次在方法中创建QSqlQuery变量时不会发出任何警告。

g0czyy6m

g0czyy6m1#

显然,类并没有被弃用,但是它的复制构造函数被弃用了。
您要做的是移动对象,而不是复制对象,如下所示:

return std::move(query);

相关问题