【问题标题】:Expected unqualified-id before ‘nullptr’'nullptr' 之前的预期不合格 ID
【发布时间】:2015-12-23 18:18:07
【问题描述】:

我尝试实现 BST,但 std::nullptr 显示错误:

错误:'nullptr'之前的预期不合格ID

#include <iostream>
#include <memory>

template <typename T>
class BinTreeNode {
public: 
    BinTreeNode(T key): data {key} {
        left = std::nullptr;
        right = std::nullptr; 
    }
    ~BinTreeNode() {}
    T data;
    BinTreeNode<T>* left;
    BinTreeNode<T>* right;
};

template <typename T>
class BinTree {
public:
    BinTree(){ 
        root = std::nullptr;
    }
    ~BinTree() {}
    BinTreeNode<T>* root;
};

int main(){
    BinTree<int> tree;
}

我尝试在 Google 中搜索它,但没有找到与 std::nullptr 相关的有意义的东西

【问题讨论】:

  • 请不要将“已解决”编辑为问题标题。相反,请接受对您有帮助的答案(单击它收到的票数下方的绿色复选标记)。

标签: c++ nullptr


【解决方案1】:

nullptr, unlike nullptr_t, does not need std:: prefix。这样做的原因是 nullptr 是一个文字,并且没有在命名空间std 中定义,同样的方式 42 没有在那里定义。它也不需要使用任何包含指令。

另一方面,nullptr_t 是一种类型,定义在命名空间std 中,需要包含&lt;cstddef&gt;

【讨论】:

    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2016-06-05
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    相关资源
    最近更新 更多