MoreEffectiveC++:不使用多态性数组
类继承最重要的特性是可以通过基类的指针或引用来操作派生类。这样的指针或引用具有行为多态性,就好像它们同时具有多种形式。C++允许你通过基类指针和引用来操作派生类的数组。但是,这根本不是一个特性,因为这样的代码根本无法如你所愿的运行。
假设您有一个BST类(如搜索树对象)和一个继承自BST类的派生类BalancedBST:
BST类{...};
class balanced BST:public BST {...};
在真实的程序中,这样的类应该是一个模板类,但在这个例子中并不重要。添加模板只会让代码更难阅读。为了便于讨论,我们假设BST和BalancedBST只包含int类型的数据。
有这样一个函数,可以打印出BST类数组中每个BST对象的内容:
void printBSTArray(ostream& s,
const BST array[],
int numElements)
{
for (int i = 0; i < numElements; ) {
s
0条评论