c ++错误 - 函数不能重载

时间:2018-02-13 04:17:55

标签: c++

以下是用于复制二叉树的c ++代码。我正在尝试重载复制功能。我认为它应该有效,因为这两个函数的返回类型不同。

node* copy(node *onode,node *cnode)
{
    if(root==NULL)
        root=onode;
    if(onode)
    {
        cnode=new node;
        cnode->data=onode->data;
        cnode->left=copy(onode->left,cnode->left);
        cnode->right=copy(onode->right,cnode->right);
        return cnode;
    }
        return cnode;
}

void copy(node *onode,node* cnode)
{
    onode=copy(onode,cnode);
}

但是,我在编译时遇到以下错误。

  

错误:'void tree :: copy(node *,node *)'无法重载        void copy(node onode,node cnode)   错误:使用'node * tree :: copy(node *,node *)'        node * copy(node * onode,node * cnode)

感谢。

1 个答案:

答案 0 :(得分:1)

只有参数根据重载规则不同

时,返回类型才有所不同