我在使用模板和NULL的c ++中遇到问题。我正在尝试使用模板在c ++中制作BST。我有一个类元素,treeElement和binarySearchTree。
binarySearchTree将treeElements作为节点。每个treeElement都有一个链接的元素列表。每个元素还有一个很长的标识,并检查它是否是<,>或==。
现在我收到错误:NULL未声明的标识符。我不知道怎么可能。这是我的treeElement代码,我得到错误:
template <class T>
class TreeElement {
private:
TreeElement* leftTree;
TreeElement* rightTree;
TreeElement* parent;
Element<T>* value;
public:
//Here is the error!!
TreeElement(Element<T>* element){value = element; leftTree = NULL; rightTree = NULL; parent = NULL;};
~TreeElement() {
Element<T>* nextElement;
if (value != NULL) {
while (value->getNextElement() != NULL) {
nextElement = value;
value = nextElement->getNextElement();
delete nextElement;
}
delete value;
}
};
TreeElement* getLeftTree(){return this->leftTree;};
TreeElement* getRightTree(){return this->rightTree;};
TreeElement* getParent(){return this->parent;};
Element<T>* getValue(){return this->value;};
void setLeftTree(TreeElement* leftTree){this->leftTree = leftTree;};
void setRightTree(TreeElement* rightTree){this->rightTree = rightTree;};
void setParent(TreeElement* parent){this->parent = parent;};
void setValue(Element<T>* value){this->value = value;};
};
答案 0 :(得分:2)
三个选项:
<cstddef>
NULL
0
或(自C ++ 11开始)nullptr
而不是狡猾的宏NULL
的一种使用)