找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 666|回复: 0

求助一个关于类的问题

[复制链接]
发表于 2009-11-2 02:09:33 | 显示全部楼层 |阅读模式 IP:江苏扬州
首先我在VC6中开了新的工程Win32控制台程序,工程是空的。然后我将自己写的代码文件导入:
// MyLnkList.h
#ifndef __MYLNKLIST_H
#define __MYLNKLIST_H
template<class T>
class MyLnkList;
template<class T>
class MyNode {
public:
friend class MyLnkList<T>;
private:
T ItemType;
MyNode<T> *prev, *next;
};
template<class T>
class MyLnkList
{
public:
MyLnkList();
~MyLnkList();
bool push_back(const T& i);
T pop_back(void);
private:
MyNode<T> *head, *tail;
int length;
};
#endif

// MyLnkList.cpp
#include "MyLnkList.h"
template<class T>
MyLnkList<T>::MyLnkList()
: head(NULL), tail(NULL), length(0)
{
}
template<class T>
MyLnkList<T>::~MyLnkList()
{
if(!length)
return;
MyNode<T> *p, *bakup;
p = head;
while(p) {
bakup = p->next;
delete p;
p = bakup;
}
head = tail = NULL;
length = 0;
}
template<class T>
bool MyLnkList<T>::push_back(const T& i) {
MyNode<T> *p = new MyNode<T>;
if(!p)
return false;
p->ItemType = i;
if(!head) {
head = p;
p->next = p->prev = NULL;
tail = head;
}
else {
tail->next = p;
p->prev = tail;
p->next = NULL;
tail = p;
}
length++;
return true;
}
template<class T>
T MyLnkList<T>::pop_back(void) {
T i;
MyNode<T> *p = tail;
if(tail) {
i = tail->ItemType;
tail = tail->prev;
length--;
delete p;
p = NULL;
}
return i;
}

// Main.cpp
#include <iostream>
#include "MyLnkList.h"
using std::cout;
using std::endl;
static int t[] = {1,2,3,4,5,6,7,8,9,10};
int main() {
register int i;
MyLnkList<int> lnklst;
for(i = 0; i < 10; i++)
lnklst.push_back(t[i]);
for(i = 0; i < 10; i++)
cout << (int)lnklst.pop_back() << '\x20';
cout << endl;
return 0;
}

这些代码是没有错误的我可以肯定,但我将MyLnkList.h包含到Main.cpp中编译后,连接器会告诉我很多符号好像不能识别,但我将包含语句中的MyLnkList.h改成MyLnkList.cpp时却能正常使用,请各位高手给小弟点致电谢谢。。

PS:另外我发现,如果我写一个类,但不用模板编成,以上方法对类的调用是可行的,这点就很奇怪了,但始终找不到问题在哪里,看了许多书都是以上面的格式写类文件的,若使用了模板就不行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:36 , Processed in 0.335409 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表