C++ 从另一个对象在条件下创建对象
我有一个登录用户的C++ 从另一个对象在条件下创建对象,c++,C++,我有一个登录用户的Login类。我有另一个类窗口,它需要在用户登录后创建一个对象。对象是一个窗口,用户可以在其中看到一些菜单和表单。我尝试使用if执行此操作,但该对象在if的作用域之外不可用 登录类中的登录方法: Login::login(){ this->user = ui->user->text(); this->pass = ui->pass->text(); this->pass = QString(QCryptographicHash::has
Login
类。我有另一个类窗口
,它需要在用户登录后创建一个对象。对象是一个窗口,用户可以在其中看到一些菜单和表单。我尝试使用if
执行此操作,但该对象在if的作用域之外不可用
登录类中的登录方法:
Login::login(){
this->user = ui->user->text();
this->pass = ui->pass->text();
this->pass = QString(QCryptographicHash::hash((pass.toLocal8Bit()),QCryptographicHash::Sha256).toHex());
QSqlQuery qry;
qry.prepare("select pass from users where username =:user");
qry.bindValue(":user",this->user);
qry.exec();
while(qry.next()){
if(this->pass == qry.value(0).toString()){
}
}
这里用这个方法。如果密码匹配,我想创建
窗口
类对象。但只要调用了该对象的析构函数,该对象就需要保持不变。如何实现这一点?请尝试创建一个脚本来向我们展示,而不是描述您的代码。@Someprogrammerdude我从Login类添加了代码。我希望这有帮助。有很多方法可以做到。也许您可以创建自己的拥有窗口对象的类,并将对该类的引用传递给您的login
函数。也许让这个函数返回一个std::unique\u ptr
。只要代码中有意义的东西。@David我创建了window
类的方法,该方法实例化了window
对象。我在if(this->pass==qry.value(0.toString())
中调用了这个方法。然而,我不确定是否有更好的方法来做到这一点?如果你能解释一下。那会很有帮助的!