为什么我会"Fatal error LNK1120: 1 unresolved externals"



我正在使用Node类来创建linked list node。它实施简单且不完整。我将指针first用作静态,我认为这将是更好的选择,因为我将使用它一次。这就是我要存储第一个Node地址的时候。但是当我尝试编译时,我收到以下错误。

1>main.obj : 错误 LNK2001: 未解析的外部符号 "public: 静态 类节点 * 节点::第一" (?first@Node@@2PAV1@A( 1>c:\users\labeeb\documents\visual Studio 2010\Projects\linked list1\调试\链表1.exe:致命错误LNK1120:1 未解决 外部 =====

===== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

注意:我使用的是 Visual C++ 2010。

法典:

#include<iostream>
using namespace std;
class Node
{
public:
    static Node *first;
    Node *next;
    int data;
    Node()
    {
        Node *tmp = new Node; // tmp is address of newly created node.
        tmp->next = NULL;
        tmp->data = 0; //intialize with 0
        Node::first = tmp; 

    }

    void insert(int i)
    {
        Node *prev=NULL , *tmp=NULL;
        tmp = Node::first;
        while( tmp->next != NULL)  // gets address of Node with link = NULL
        {
            //prev = tmp;
            tmp = tmp->next;
        }
        // now tmp has address of last node. 
        Node *newNode = new Node; // creates new node.
        newNode->next = NULL;     // set link of new to NULL  
        tmp->next = newNode;  // links last node to newly created node. 
        newNode->data = i;  // stores data in newNode
    }

};
int main()
{
    Node Node::*first = NULL;
    Node n;


    system("pause");
    return 0;
}

将此行从内部移动到文件范围main,并稍微更改一下:

Node* Node::first = NULL;

如前所述,您正在声明一个名为 first 的局部变量,其类型为"指向类 Node 成员的指针,类型为 Node"。此局部变量与 Node::first 不同且无关。

相关内容

  • 没有找到相关文章

最新更新