所以我有一个节点类:

template <typename Type>
class NodeType
{
    public:
    Type m_data;
    NodeType<Type> *mp_next;
    // note data goes uninitialized for default constructor
    // concept being Type's constructor would auto-init it for us
    NodeType() { mp_next = NULL; }
    NodeType(Type data) {m_data = data; mp_next = NULL;}
};

我正在尝试制作一个像这样的新节点:
NodeType<int> n1 = new NodeType<int>(5);

编译器告诉我:
SLTester.cpp:73:40: error: invalid conversion from ‘NodeType<int>*’ to ‘int’ [-fpermissive]
SingList.h:29:2: error:   initializing argument 1 of ‘NodeType<Type>::NodeType(Type) [with Type = int]’ [-fpermissive]

谁能帮我弄清楚为什么会这样和/或我实际上应该做什么?

最佳答案

通过定义NodeType<int> n1n1不是指针类型,

更新:

NodeType<int> n1 = new NodeType<int>(5);

至:
NodeType<int> n1{5};

要么
NodeType<int> n1(5);

关于c++ - 错误: invalid conversion from,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20013260/

10-09 13:38