Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从另一个对象在条件下创建对象_C++ - Fatal编程技术网

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())
中调用了这个方法。然而,我不确定是否有更好的方法来做到这一点?如果你能解释一下。那会很有帮助的!