我需要对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();
Run Code Online (Sandbox Code Playgroud)
我的问题是:
这是一个正确的方法吗?这是动态绑定的一个例子吗?
感谢您的关注,如果我没有正确解释我的问题,我很抱歉,这是我在这个精彩网站上的第一篇文章!