我有代码:
UserDialog::UserDialog(DatabaseHandler &db,
QWidget *parent) :
UserDialog{db, User(), parent}
{
}
UserDialog::UserDialog(DatabaseHandler &db, User &user, QWidget *parent):
QDialog{parent},
ui{new Ui::UserDialog},
mDB{db},
mUser{user}
{
//...
}
如何正确创建新的User对象并将其作为参数传递给调用构造函数?
UserDialog{db, User(), parent}
最佳答案
由于构造函数期望可变的左值,因此必须提供一个现有的User
对象:
User user;
UserDialog{db, user, parent};
如果不需要继续存在用户对象,则可以将构造函数参数类型更改为
const User&
,在这种情况下,将接受临时变量。