繁体   English   中英

如何返回一个指针 function?

[英]How to return a pointer function?

我是 c++ 的新手,我被要求让 class 工作来做一个 function,它采用一个双向链表然后将它的元素复制到一个单向链表中,但是当我给出这个函数的声明时,我只返回它的元素, function 它要么不返回任何东西,要么给我下面的错误,我理解链表代码,但我不明白使用指针和返回部分,有人可以向我解释一下吗? 以及如何使它工作? 我无法在网上找到对此的解释,或者我正在搜索错误的关键字。 任何帮助表示赞赏。

template <class T>
SinglyLinkedList<T>* DoublyLinkedList<T>:: Function() {

SinglyLinkedList<T> list1;

DLLnode<T>*p = head;

while (p!=NULL) {

list1.addtoHead(p->value);
p=p->next;

}

return list1;

}

//error: cannot convert ‘SLL<int>’ to ‘SLL<int>*’ in return

1)为此使用指针是愚蠢的。 但这就是你被告知要做的事情。

2)如果你使用指针,那么这个 function 将返回一个地址。 这就是指针。 你无法改变这一点。 诀窍是在您尝试打印时取消引用指针。 这样它就不会打印地址,而是会打印指针指向的内容。 如果您需要这方面的帮助,请发布您的打印代码。

3) 以下是使用指针的方法

template <class T>
SinglyLinkedList<T>* DoublyLinkedList<T>:: Function() {
    SinglyLinkedList<T>* list1 = new SinglyLinkedList<T>();
    DLLnode<T>*p = head;
    while (p!=NULL) {
        list1->addtoHead(p->value);
        p=p->next;
    }
    return list1;
}

这是最近几天海报被他们的大学教授告知做一些愚蠢的事情的第二次事件。 那好吧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM