gpt4 book ai didi

c++ - Xcode C++,无法从 main 调用指针返回方法

转载 作者:行者123 更新时间:2023-11-28 06:41:43 25 4
gpt4 key购买 nike

我正在尝试实现一个LinkedList 数据结构。所以我有 main.cppLinkedListClass.cppLinkedListClass.h

这是我的 LinkedListClass.h

struct Node
{
int data;
Node* next;
};

class LinkedListClass
{
public:
Node* head;
LinkedListClass();
~LinkedListClass();

void insert(int value);
void display();
Node* ktoLast(Node* head, int k);//<-- this compile fine if I didn't call it from main

private:
Node* tail;
};

我试图从 main 中调用 ktoLast(Node* head, int k) 方法,我是这样做的:

int main(int argc, const char * argv[])
{
LinkedListClass* myList = new LinkedListClass();

myList->insert(3);
myList->insert(4);
myList->insert(2);
myList->insert(7);
myList->display();

Node* head = myList->head;
int k = 3;

int val = myList->ktoLast(head, k)->data;
cout << val << endl;


return 0;
}

错误信息: enter image description here

===================更新=========================

方法实现

Node* ktoLast(Node* head, int k)
{
Node* current = head;
int length = 0;

// find the length of the list
while (current)
{
length++;
current = current->next;
}
current = head; // reset back to head
if (k > length || k < 1) return NULL;

int count = 0;
while (length - count != k)
{
count++;
current = current->next;
}

return current;

}

最佳答案

成员函数定义需要写成

Node* LinkedListClass::kToLast(Node* head, int k) { ...

您在上面定义了一个同名的自由函数。此外,如果 head 始终是当前列表 (this) 的头部,则不需要将其作为参数传递。

关于c++ - Xcode C++,无法从 main 调用指针返回方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840649/

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