我在用我的 AVL 树调用覆盖函数时遇到了一些麻烦。它正在调用 BST 树中的那个。这比平常更令人困惑,因为 AVLNode 是从 BinaryNode 派生的。我需要添加一个高度数据成员。这可能是导致问题的原因还是比这更简单。
class BST
{
public:
Parent():root(NULL) { }
void insert( const string & x, int lineNum, int& count )
{
insert(x, lineNum, root, count);
}
protected:
BinaryNode* root;
void insert( const string & x, int lineNum, Node * & t, int& count )
{//stuff
}
};
class AVL:public BST
{
public:
void insert( const string & x, int lineNum, int& count )
{
cout << "INSERT\n";
insert(x, lineNum, root, count);
}
protected:
AVLNode* root;
void insert( const string & x, int lineNum, AVLNode * & t, int& count )
{
cout << "insert\n";
//different stuff
}
};
class BinaryNode
{//constructors
}
class AVLNode:public BinaryNode
{//constructors
};