二叉树,其中数据是不同的继承类型

时间:2013-05-03 15:33:40

标签: c++ inheritance tree binary-tree

我有一个基类,有两个继承自这个的类,另外两个类继承自这些类。我需要使用二叉树来存储数据,但是我不太明白如何将数据存储在树中。在我看到的例子中,数据只是int data,但我的最多可以有四种不同的类型。

1 个答案:

答案 0 :(得分:2)

如果要在树中存储的所有类型都是从同一基类派生的,那么您的数据成员可以是指向该基类的指针。这样,指针可以指向基类的对象或任何派生类型。

例如:

class Node
{
...
private:
    Vehicle* mData;
};

然后你可以做类似的事情:

node->SetData(new Car);
otherNode->SetData(new Moped);

或者你拥有的任何接口,它将mData指针设置为指向从Vehicle派生的类树中某种类型的对象。