gpt4 book ai didi

c++ - 错误 c2440 '=' 无法从 int * 转换为 Type *

转载 作者:行者123 更新时间:2023-11-27 22:56:43 24 4
gpt4 key购买 nike

我在 VS2015 中遇到以下错误。对我来说,我搞砸模板的事情并不明显。

非常感谢任何指点!

错误 C2440“=”:无法从“int *”转换为“DNode *”

    template<class Type>
class DNode <- *** THIS IS THE TYPE ***
{
public:
Type *next;
Type *previous;
Type value;

DNode(Type valueParam)
{
value = valueParam;
next = previous = NULL;
}
};

template<class T>
class DLinkedList
{
DNode<T> *head;
DNode<T> *tail;

public:
DLinkedList()
{
head = tail = NULL;
}

T pop_tail()
{
if (tail == NULL) return -1;
T value;
if (head == tail)
{
value = tail->value;
free(tail);
head = tail = NULL;
return value;
}
else
{
DNode<T> *ptr = tail;
value = tail->value;
tail = tail->previous; <-- *** THIS LINE THROWS ERR ***
tail->next = NULL;
free(ptr);
return value;
}
}
}

最佳答案

DNode::previous类型为 Type* , 不是 DNode<Type>* .

您可能希望同时声明 DNode::nextDNode::previous作为类型 DNode<Type>* .

关于c++ - 错误 c2440 '=' 无法从 int * 转换为 Type<T> *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com