C++ Xcode C++;,无法从main调用指针返回方法
我正在尝试实现一个C++ Xcode C++;,无法从main调用指针返回方法,c++,xcode5,C++,Xcode5,我正在尝试实现一个LinkedList数据结构。所以我有main.cpp,LinkedListClass.cpp,和LinkedListClass.h struct Node { int data; Node* next; }; class LinkedListClass { public: Node* head; LinkedListClass(); ~LinkedListClass(); void insert(int value);
LinkedList
数据结构。所以我有main.cpp
,LinkedListClass.cpp
,和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;
};
这是我的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;
};
错误消息:
=========================更新=========================
方法实现
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*ktoLast(Node*head,int k)
{
节点*电流=头部;
整数长度=0;
//查找列表的长度
while(当前)
{
长度++;
当前=当前->下一步;
}
当前=磁头;//重置回磁头
如果(k>length | | k<1)返回NULL;
整数计数=0;
while(长度-计数!=k)
{
计数++;
当前=当前->下一步;
}
回流;
}
成员函数定义需要写成
Node* LinkedListClass::kToLast(Node* head, int k) { ...
上面的内容是定义一个同名的自由函数。另外,如果
head
始终是当前列表的头(this
),则不需要将其作为参数传递 你的函数定义在哪里?大概在LinkedListClass.cpp中。是否正在编译和链接?@sfjac我已经在上面添加了方法实现。是的,如果我没有从main调用该方法,那么程序可以编译。当我从main调用ktoLast(Node*head,int k)
时出现错误,非常感谢!我忽略了这一点