链表声明与原型不兼容
Linked List...declaration incompatible with the protoype
嘿,伙计们,所以当我试图为我的链表类创建这个函数时,我得到了这个错误。我遇到问题的函数是我的搜索函数。我甚至还没有开始创建这个函数,但是我收到的错误是在搜索函数的声明中。在第38行NodePtr下,它说它是未定义的,在搜索下,它说错误:声明与"LinkedList::NodePtr(在第17行声明)"不兼容。代码如下。谢谢你的帮助。
// LinkedListProject.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <list>
using namespace std;
class LinkedList {
public:
struct Node {
int data;
Node* link;
};
typedef Node* NodePtr;
//NodePtr head = new Node;
void head_insert(NodePtr& head, int the_number);
NodePtr search(NodePtr head, int target);
private:
};
int main()
{
LinkedList obj;
//obj.head->data = 3;
//obj.head->link = NULL;
return 0;
}
void LinkedList::head_insert(NodePtr& head, int the_number) {
NodePtr temp_ptr = new Node;
temp_ptr->data = the_number;
temp_ptr->link = head;
head = temp_ptr;
}
NodePtr LinkedList::search(NodePtr head, int target)
{
return NodePtr();
}
你必须在定义NodePtr的地方设置正确的作用域。
LinkedList::NodePtr LinkedList::search(NodePtr head, int target)
{
return LinkedList::NodePtr();
}
NodePtr
是一个限定于您的类的名称。为了在课外使用它,你需要LinkedList::NodePtr
。所以你必须改变
NodePtr LinkedList::search(NodePtr head, int target)
LinkedList::NodePtr LinkedList::search(NodePtr head, int target)
现在你可能会问,"但是等等,我在搜索中不需要它,为什么呢?",答案是在你做了之后
LinkedList::search
类名被注入到函数作用域的其余部分。因此,我们不需要显式地限定任何作用域为类的名称。
相关文章:
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 字符类型转换不兼容
- Qt:如何使不兼容的发送方/接收方参数兼容?
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 使用不兼容的分配器复制分配无序列图
- 类型为 "int*" 的参数与 C++ 中错误类型"int**"参数不兼容
- 该对象具有与成员函数不兼容的类型限定符.为什么会出现此错误?
- 我正在尝试将表的地址传递给要在另一个函数中使用的指针,但得到不兼容的指针类型
- 为什么范围算法与 std 的迭代器不兼容?
- Winpcap Findalldevs const char * 与 char * 不兼容
- C++ 类型的参数与 void (__cdecl*)(void) 类型的参数不兼容,当调用 std::atexit()
- 将"std::string {aka std::basic_string}"赋值中的不兼容类型<char>
- 如何在C++中停止调用不兼容的方法?
- OPENCL 警告:不兼容的指针类型将'float __global[16]'传递给类型为 '__global float4 的参数 *
- 函数范围的静态变量如何导致与共享库中函数代码的未来使用不兼容
- 如何修复"方法的类型与 PInvoke 不兼容"
- C++不兼容的迭代器类型
- 编译器错误"在if语句中分配不兼容的类型"
- 程序无法编译:将 'int (*)[3][3]' 赋值为 'int [9][3][3]' 中的不兼容类型
- 链表声明与原型不兼容