【发布时间】:2014-06-02 14:50:52
【问题描述】:
我需要澄清一下 C++ 中的动态绑定。
我解释了我的问题。
我必须使用二叉搜索树来实现字典。我决定还实现一个 AVL 树(自平衡二叉搜索树)。我已经成功实现了两个类:BST(二叉搜索树)和扩展 BST 的 AVL。我的程序运行正常。
我的目标是只有一个指针,我可以从 BST 类切换到 AVL 类,询问用户“你想使用哪个结构?”在程序开始时。
其余代码相同,因为 BST 和 AVL 具有相同的方法名称(即使它们执行不同的操作 -> 覆盖)。
我通过这种方式达到了我的目标:
cout << "whitch structure would you like to use? [1] for BST, [2] for AVL";
short choise;
cin >> choise;
BST a;
AVL b;
BST* dictionary;
if (choise == 1)
dictionary = &a;
else if (choise == 2)
dictionary = &b;
.
.
.
dictionary->doSomething();
我的问题是:
这是一个正确的方法吗?这是动态绑定的例子吗?
感谢您的关注,如果我没有正确解释我的问题,我深表歉意,但这是我在这个精彩网站上的第一篇文章!
【问题讨论】:
标签: c++ dynamic-binding