c++ - 返回;只有没有返回值

标签 c++

有人写代码是什么意思:

 template <class T>
 void binaryTree<T>::in_order(Node <T>* node, void (*fun)(T&))
{
    if (node == NULL)   
            return;     //<-- what does this mean here

    inorder(node->left, fun);   //<-- how does this continue here
    f(node->data);
    inorder(node->right,fun);
}

问题是你如何获得返回;没有返回任何东西。这是做什么的? **注意,为了清楚起见,我已经编辑了上面的代码。

最佳答案

如果你把它格式化得更好,它可能更容易看到:

void foo (int x, int y)
{ 
    if (x == 1)
        return;
    foo (y);
}

它只是返回如果变量x 等于1。如果 x 等于 1 那么代码会跳到对 foo 的递归调用(我真的希望真正的代码不是那样的,因为当它需要两个参数时,你用一个参数调用 foo

关于c++ - 返回;只有没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19487522/

相关文章:

c++ - typeinfo 和dynamic_cast 外部未解析

c++ - 我应该如何在 boost::asio 的客户端应用程序中同时使用 async_read_until 和 async_write ?

c++ - 我可以让 doxygen 将 @ref 解析为 C++ 标准库函数吗?

c++ - 如何定义相互依赖的类?

c++ - 打包可变参数模板具有零元素时的递归

c++ - 递归文件搜索

c++ - 使用 Qt 和 QSortFilterProxyModel 实现不同的 View

c++ - 重新连接设备后 boost::asio::serial_port 读取

c++ - ZeroMQ:重新绑定(bind)套接字时地址正在使用错误

c++ - LibCurl 如何同时捕获 400,而不是作为 CURLE_HTTP_RETURNED_ERROR 错误的一部分