关于模版的使用

AYellow 2002-11-14 07:04:34
template <class T> class List
{
public:
int capability;
T * data[];
int size;
List();
~List();
};

如果我要添加一个add函数,参数为T类型的指针,声明和定义如何写?
...全文
56 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
AYellow 2002-11-14
  • 打赏
  • 举报
回复
OK
kwok_1980(Mars)
可惜你来晚了
刚才那个消息就是因为你加了一个回复
AYellow 2002-11-14
  • 打赏
  • 举报
回复
奇怪,给分出现以下消息是什么意思?因为我给这个帖子加过3次分?

0,50,0,0,0,0,0,0,0,150,0,0
贴子回复次数大于跟给分次数
kwok_1980 2002-11-14
  • 打赏
  • 举报
回复
既然add是List的函数,在实现的时候就要模版啦。
such as:
template <class T>
class List
{
public:
int capability;
T * data[];
int size;
List();
~List();
void add(T* t);
};

template <class T>
void List<T>::add(T* t)
{
}
AYellow 2002-11-14
  • 打赏
  • 举报
回复
谢谢,马上结贴
kxw 2002-11-14
  • 打赏
  • 举报
回复
你的程序有一些语言上的错误,不明白的再提
kxw 2002-11-14
  • 打赏
  • 举报
回复
下面是我改过的程序

#include <iostream>
#include <stdlib.h>

//在一个文件util.cpp中,还是不行
//---------------------------------------------------------------------------


template <class T> class List
{
public:
int capability;
T * data;
int size;
List();
~List();
void List::add(T* t);
};

//---------------------------------------------------------------------------

template <class T> List<T>::List()
{
capability = 1000;
data = new T[1000];
size = 0;
}

//---------------------------------------------------------------------------

template <class T> List<T>::~List()
{
delete [] data;
}

//---------------------------------------------------------------------------
template <class T>
void List<T>::add(T* t)
{
}



int main(int argc, char *argv[])
{

system("PAUSE");
return 0;
}
AYellow 2002-11-14
  • 打赏
  • 举报
回复
to:kxw(时光) (
已经在一个文件里面了
AYellow 2002-11-14
  • 打赏
  • 举报
回复
再加50分,请帮忙!
kxw 2002-11-14
  • 打赏
  • 举报
回复
应该在同一个文件中
AYellow 2002-11-14
  • 打赏
  • 举报
回复
怎么个分开法?
一定要写在类的声明里吗?
kxw 2002-11-14
  • 打赏
  • 举报
回复
不要分开,类声明和类实现

因为现在的编程器还不能实现,分离式编译
AYellow 2002-11-14
  • 打赏
  • 举报
回复
//在一个文件util.cpp中,还是不行
//---------------------------------------------------------------------------


template <class T> class List
{
public:
int capability;
T * data[];
int size;
List();
~List();
void List::add(T* t);
};

//---------------------------------------------------------------------------

template <class T> List<T>::List()
{
this->capability = 1000;
this->data = new *T[1000];
this->size = 0;
}

//---------------------------------------------------------------------------

template <class T> List<T>::~List()
{
for(int i=0;i<size)
{
delete this->data[i];
}
}

//---------------------------------------------------------------------------

void List::add(T* t)
{
}
AYellow 2002-11-14
  • 打赏
  • 举报
回复
//util.h
template <class T> class List
{
public:
int capability;
T * data[];
int size;
List();
~List();
void List::add(T* t);
};

//util.cpp
void List::add(T* t)
{
}
不能通过
ckacka 2002-11-14
  • 打赏
  • 举报
回复
template <class T> class List
{
public:
int capability;
T * data[];
int size;

// returntype add(T* para);

List();
~List();
};

//implementation:
returntype add(T* para)
{...}

// 关键是把这些东西要放在同一个文件里面,不要分开!
ckacka 2002-11-14
  • 打赏
  • 举报
回复
returntype add(T* para);

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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