You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++模板链表项目:C3861与LNK2019错误求助

模板链表开发中的编译与链接错误排查

一、C3861错误:标识符"m_node"未找到

我是编程新手,正在开发支持不同数据类型的模板链表项目,接近完成时反复出现C3861错误,提示标识符"m_node"未找到。已经查阅相关解决方案,要么和我的场景无关,要么已经尝试过(比如在TempLinkedList.h中包含Node头文件),还是搞不懂问题出在哪。

相关代码:

TempLinkedList.cpp

#include <iostream>

template<typename T>
TempLinkedList<T>::TempLinkedList()
{
    m_head = nullptr;
}

template<typename T>
T TempLinkedList<T>::GetHead()
{
    return nullptr;
}

template<typename T>
void TempLinkedList<T>::PushBack(T data)
{
    TempNode* temp = m_head;
    if (m_head == nullptr)
    {
        m_head = m_node; // error point
        return;
    }
    while (temp->GetNext() != nullptr)
    {
        temp = temp->GetNext();
    }
    temp->SetNext(m_node); // error point
}

template<typename T>
void TempLinkedList<T>::Execute()
{
    TempNode* temp = m_head;
    while (temp != nullptr)
    {
        temp->Execute();
        temp = temp->GetNext();
    }
}

Node.h

#include <string>
#include <iostream>
using namespace std;
template<typename T>
class TempNode
{
public:
    TempNode(string* data, int* m_node)
    {
        m_node = new T[];
            data = new T[];
    }
    

    TempNode(T data, T next, T m_node);
    ~TempNode();

    void SetNext(T* next);
    T* GetNext();
    T GetData();

    void execute();
private:
    T* data;
    T* next;
    T* m_node;

};

二、后续出现LNK2019错误:未解析外部符号

感谢各位建议,已经解决了上面的问题,但又出现LNK2019错误,提示存在未解析外部符号,推测和Source.cpp中的void main()函数有关。尝试修复但不确定具体哪部分引发错误,附上Source.cpp代码:

Source.cpp

#include "Node.h"
#include "TempLinkedList.h"
template<typename T>
void Testone()
{
    TempLinkedList* list = new TempLinkedList();

    TempNode* m_head1 = new TempNode("2");
    TempNode* m_head2 = new TempNode("4");
    TempNode* m_head3 = new TempNode("6");
    TempNode* m_head4 = new TempNode("8");
    TempNode* m_head5 = new TempNode("10");
    TempNode* m_head6 = new TempNode("12");
    list->PushBack(m_head1);
    list->PushBack(m_head2);
    list->PushBack(m_head3);
    list->PushBack(m_head4);
    list->PushBack(m_head5);
    list->PushBack(m_head6);
    list->Execute();

}
template<typename T>
void main(T TTempNode)
{
    Testone<T>();
    TempNode<T> TTempNode;
    T numAdd = TTempNode.GetNext();

    system("pause");
}

内容的提问来源于stack exchange,提问作者Pogramming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:50:27