虚拟函数未从具体函数返回值

时间:2019-09-27 13:22:55

标签: return-value virtual-functions

我正在开发一个我没有编写代码的程序,但是我想(需要)理解。在虚拟函数的上下文中,它是C ++。

有一次它设置了虚拟布尔函数“ acceptReject”,如下所示。

<div class="progress progress-sm active">
    <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
         aria-valuenow="6" aria-valuemin="0"
         aria-valuemax="10"
         style="width: 60%">
        <span class="sr-only">6/10</span>
    </div>
</div>
<div class="no-padding">
    <table class="table table-condensed therapy-popover-table">
        <tbody>
        <tr>
            <td>Protocollo N°</td>
            <td>837-2019PC</td>
        </tr>
        <tr>
            <td>Codice prescrizione</td>
            <td>93xxxx1</td>
        </tr>
        <tr>
            <td>Prescrizione</td>
            <td><small>IDROCHINESITERAPIA INDIVIDUALE (9xxxx1) (30')</small></td>
        </tr>
        <tr>
            <td>Data evento lesivo</td>
            <td>10/09/2019</td>
        </tr>
        <tr>
            <td>Data prescrizione</td>
            <td>10/09/2019</td>
        </tr>
        <tr>
            <td>Priorità</td>
            <td>Breve</td>
        </tr>
        <tr>
            <td>Tipo prestazione</td>
            <td>Privato</td>
        </tr>
        <tr>
            <td colspan="2"><a href="/prescription/update/2602"><i class="fa fa-share-square"></i> Vai alla prescrizione</a></td>
        </tr>
        </tbody>
    </table>
</div>

然后将虚拟布尔值设置为具体的布尔函数“ globalMetropolisAcceptReject”,如下所示:

virtual bool acceptReject(const Double& DeltaH) const = 0;

如果我直接调用globalMetropolisAcceptReject,则一切正常。如果我调用acceptReject(虚拟函数),它将正确输入并处理代码,但不会将值传递回去。相反,它始终为false。

有人猜测缺少什么吗?

1 个答案:

答案 0 :(得分:0)

似乎我只需要在实现中添加单词return。

    bool acceptReject(const Double& DeltaH) const {
  return globalMetropolisAcceptReject(DeltaH);
}

删除问题还是正确的协议?