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
相关产品推荐
相关产品推荐

