0

我写了一个关于 BTree 的程序,代码如下:

class BTreeNode 
{
public:
...
    BTreeNode* getChild(const int i);    
private:
...
};
typedef BTreeNode* BTreeP;

void _insert_key_to_unfull_tree(BTreeP &tree, int key);

// the problematic implementaion
_insert_key_to_unfull_tree(tree->getChild(i), key);

编译器说不能将 BTreeNode * 转换为 BTreeP &,我应该如何解决这个问题??????

4

2 回答 2

0

_insert_key_to_unfull_tree(*(tree->getChild(i)), key);

当然,您可能想要验证 getChild 不返回 null!

于 2013-02-26T18:26:42.410 回答
0

该函数_insert_key_to_unfull_tree需要一个指针的引用:

void _insert_key_to_unfull_tree(BTreeNode*& tree, int key);

尝试更改getChild,使其返回对指针的引用:

BTreeNode*& getChild(const int i);    

顺便说一句,您可能希望删除typedef BTreeNode* BTreeP以减少混淆。

于 2013-02-26T20:14:44.793 回答