我想要实现一个具有以下结构的GPA计算器程序:年份的集合是年份的树,一年是一学期的树,而一学期是一门课程的树。这些类型都将从一个称为“容器”的基类派生。由于我们不知道一个学期可以包含多少个类,因此我希望有一个指向其子类的指针向量,以便我们可以添加任意数量的课程节点。以下实现方式行得通吗?
template <typename ContainerType, typename ChildType>
class Container
{
protected:
// Node class definition.
class Node
{
public:
ContainerType data; // contents of the node.
vector<Node*> child; // links to the node's children.
// Node constructor functions:
Node() { }
Node(const ContainerType &theData) : data(theData) { }
};
protected:
Node *current; // Points to the current node
Node *parent; // Points to current node's parent
};
我希望每次添加一个子节点时,都可以根据需要增加子节点指针的数量。这可能吗?我有一种感觉,因为容器的节点指针将指向不同类型的节点,所以这可能会引起问题。