以下是用于复制二叉树的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)
感谢。
答案 0 :(得分:1)
只有参数根据重载规则不同
时,返回类型才有所不同