一个关于c++实现链表的问题

ccc_lover 2015-07-29 05:40:00
新人第一次提问。。。最近想用c++实现一个链表,然而不知道怎么回事总是通不过
求大神来帮我找找原因

以下是代码
//对模板类的声明
template <class T>
class CMyStock
{
public:
CMyStock(T a);
~CMyStock();

//对stock的操作
void AddNextStock();
void AddLastStock();
void DeleteNextStock();
void DeleteLastStock();
void DeleteSelf();

//对date的操作
void print();

protected:
CMyStock* m_pHead;
CMyStock* m_pNext;
private:
T date;
};

template<class T>
CMyStock<T>::CMyStock(T a):
m_pHead(NULL),m_pNext(NULL),date(a)
{


}


template<class T>
CMyStock<T>::~CMyStock()
{
m_pHead = NULL;
m_pNext = NULL;
}


template<class T>
void CMyStock<T>::AddLastStock()
{
CMyStock* pBox(NULL);
if(!m_pHead)
{
CMyStock* pStock = operator new (sizeof(CMyStock));
m_pHead = pStock;
pStock->m_pNext= this;
}
else
{
pBox = m_pHead;
CMyStock* pStock = operator new (sizeof(CMyStock));
m_pHead = pStock;
pStock->m_pHead = pBox;
pStock->m_pNext = this;
pBox->m_pNext = pStock;
}
}





//模板类的定义
template<class T>
void CMyStock<T>::AddNextStock()
{
CMyStock* pBox(NULL);
if(!m_pNext)
{
CMyStock* pStock = operator new (sizeof(CMyStock));
m_pNext = pStock;
pStock->m_pHead = this;
}
else
{
pBox = m_pNext;
CMyStock* pStock = operator new (sizeof(CMyStock));
m_pNext = pStock;
pStock->m_pNext = pBox;
pStock->m_pHead = this;
pBox->m_pHead = pStock;
}
}


template<class T>
void CMyStock<T>::DeleteLastStock()
{
CMyStock* pBox(NULL);
pBox = m_pHead;
m_pHead = m_pHead->m_pHead;
m_pHead->m_pNext = this;
delete pBox;
}


template<class T>
void CMyStock<T>::DeleteNextStock()
{
CMyStock* pBox(NULL);
pBox = m_pNext;
m_pNext = m_pNext->m_pNext;
m_pNext->m_pHead = this;
delete pBox;
}


template<class T>
void CMyStock<T>::DeleteSelf()
{
CMyStock *pLast, *pNext;
pLast = m_pHead;
pNext = m_pNext;
pLast->m_pNext = pNext;
pNext->m_pHead = pLast;
delete this;
}


template<class T>
void CMyStock<T>::print()
{
cout<<date<<endl;
}


//主函数
#include <iostream>
#include "CMyStock.h"
using namespace std;

int main()
{
CMyStock<int> stock(1); /*这里,编译不通过,显示是 undefined reference to
stock.print(); CMyStock<int>::CMyStock(int) */
return 0;
}
不知道这是怎么回事,希望有大神来帮帮忙
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2015-07-29
  • 打赏
  • 举报
回复
C++实现参考标准库list 模板 节点和 链表分离,做成两个类 节点 必要时,可以用来实现 链表的 iterator 链表,只需要实现几个 方法就可以了
qq_23118143 2015-07-29
  • 打赏
  • 举报
回复
这是双向链表?
假正经的班长 2015-07-29
  • 打赏
  • 举报
回复
模板类的实现不能放在CPP里。
aanbpsd 2015-07-29
  • 打赏
  • 举报
回复
实现别放在cpp里

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧