我有一个基类,有两个继承自这个的类,另外两个类继承自这些类。我需要使用二叉树来存储数据,但是我不太明白如何将数据存储在树中。在我看到的例子中,数据只是int data
,但我的最多可以有四种不同的类型。
答案 0 :(得分:2)
如果要在树中存储的所有类型都是从同一基类派生的,那么您的数据成员可以是指向该基类的指针。这样,指针可以指向基类的对象或任何派生类型。
例如:
class Node
{
...
private:
Vehicle* mData;
};
然后你可以做类似的事情:
node->SetData(new Car);
otherNode->SetData(new Moped);
或者你拥有的任何接口,它将mData指针设置为指向从Vehicle派生的类树中某种类型的对象。