C++ 使用Qt Creator在调试模式下编译一段代码

C++ 使用Qt Creator在调试模式下编译一段代码,c++,qt,C++,Qt,我向你展示我的问题。 我正在Qt Creator中为一个大学项目创建一个应用程序。 正如您在下面的代码中所看到的,我在一个方法中插入了两个“cout”,因为它们对我检查程序是否工作很有用,这意味着它们没有真正的函数。 看了之后,教授委托我用#IFDEF在调试模式下执行,这样包含“cout”的代码部分只对程序员可见,而不是对假设的客户机可见。 我希望我已经很好地解释了我的问题,我感谢任何能帮助我的人。 想想看,在这种事情上,我是新手。 谢谢您必须使用预处理器宏。qt creator的正确选项是qt

我向你展示我的问题。 我正在Qt Creator中为一个大学项目创建一个应用程序。 正如您在下面的代码中所看到的,我在一个方法中插入了两个“cout”,因为它们对我检查程序是否工作很有用,这意味着它们没有真正的函数。 看了之后,教授委托我用#IFDEF在调试模式下执行,这样包含“cout”的代码部分只对程序员可见,而不是对假设的客户机可见。 我希望我已经很好地解释了我的问题,我感谢任何能帮助我的人。 想想看,在这种事情上,我是新手。
谢谢

您必须使用预处理器宏。qt creator的正确选项是
qt\u DEBUG
。您的代码应该如下所示:

void BankAccount::addTransaction(Transaction* t){
    if(t->getType()==0 && actualAccountBalance < t->getTransactionValue()) {

#ifdef QT_DEBUG
        cout<<"Unable to add transaction: insufficient balance to make the requested withdrawal!"<<endl;
#endif

        ; // empty command, because of empty if
   }

   else if(find(transactions.begin(),transactions.end(),t) != transactions.end()) {

#ifdef QT_DEBUG
        cout<<"This transaction has already been added!"<<endl;
#endif

        ; // empty command, because of empty if

    }

    else{
        transactions.push_back(t);
        assignID(t);
        actualAccountBalance = calculateAccountBalance();
    }
}
作废银行账户::添加交易(交易*t){
如果(t->getType()==0&&actualCountBalancegetTransactionValue()){
#ifdef QT_调试

非常感谢您提供了完整的答案。我完全按照您所说的重写了代码,但给出了以下错误:“else没有先前的if”。错误同时出现在底部的“elseif”和“else”中,请在if和else if
{}之后用括号重试
我在
#endif
之后删除了两个
,现在它没有给我任何错误。两个
cout
中写入的消息仍然打印在应用程序输出中。我如何验证我必须做的事情是否得到了满足?你应该了解预处理器宏的工作方式。你必须使用括号,因为你有更多的if-else语句中的一行。然后您应该验证是否编译了调试或发布版本。您知道如何执行此操作吗?我已解决,非常感谢您的帮助和耐心;)