想实现一个数组,里面存几个相同的模版类,怎么弄???
时间:2010-08-11
来源:互联网
本帖最后由 jlccwss 于 2010-08-11 16:31 编辑
//下面是声明一个名为share的模版类并初始化
ShareBuffer<dns_data *> share(10);
//下面是一个模版类的数组,我怎么去初始化数组成员?
ShareBuffer<dns_data *> share_queue[5];
ShareBuffer<dns_data *> *share_queue[5];
share_queue[0] = new ShareBuffer(10);
报错:
error: expected constructor, destructor, or type conversion before ‘=’ token
ShareBuffer<dns_data *> share_queue[5];
share_queue[0].ShareBuffer(10);
error: expected constructor, destructor, or type conversion before ‘.’ token
ShareBuffer<dns_data *> share_queue[5];
share_queue[0] = ShareBuffer<dns_data *> share_queue1(10);
expected constructor, destructor, or type conversion before ‘=’ token
必须我要在ShareBuffer类中重载操作符才可以么?
复制代码
//下面是声明一个名为share的模版类并初始化
ShareBuffer<dns_data *> share(10);
//下面是一个模版类的数组,我怎么去初始化数组成员?
ShareBuffer<dns_data *> share_queue[5];
ShareBuffer<dns_data *> *share_queue[5];
share_queue[0] = new ShareBuffer(10);
报错:
error: expected constructor, destructor, or type conversion before ‘=’ token
ShareBuffer<dns_data *> share_queue[5];
share_queue[0].ShareBuffer(10);
error: expected constructor, destructor, or type conversion before ‘.’ token
ShareBuffer<dns_data *> share_queue[5];
share_queue[0] = ShareBuffer<dns_data *> share_queue1(10);
expected constructor, destructor, or type conversion before ‘=’ token
必须我要在ShareBuffer类中重载操作符才可以么?
- template<typename ITEM>
- class ShareBuffer
- {
- public:
- ShareBuffer(int bufer_size = 10)
- {
- size_ = bufer_size;
- if(size_ <=0) throw "Invalid Size";
- item_buf_ = new ITEM[size_];
- pthread_mutex_init(&mutex, NULL);
- sem_init(&full, 0, 0);
- sem_init(&empty, 0, size_);
- head_ = 0;
- tail_ = 0;
- };
- int producer(ITEM item);
- ITEM consumer();
- private:
- int insert_item(ITEM item);
- ITEM remove_item();
- private:
- int size_;
- ITEM *item_buf_;
- int head_;
- int tail_;
- pthread_mutex_t mutex;
- sem_t full, empty;
- };
作者: jlccwss 发布时间: 2010-08-11
救命啊………………
作者: jlccwss 发布时间: 2010-08-11
试试
ShareBuffer<dns_data *> share_queue[5] = {10,10, 10, 10, 10};
ShareBuffer<dns_data *> share_queue[5] = {10,10, 10, 10, 10};
作者: hellioncu 发布时间: 2010-08-11
本帖最后由 jlccwss 于 2010-08-11 16:47 编辑
回复 hellioncu
--!我想存的是模版类,结果你都给初始成int型的了,这这这……
我试了,结果如下(core里的):
Program terminated with signal 8, Arithmetic exception.
[New process 15676]
[New process 15675]
[New process 15674]
[New process 15673]
[New process 15672]
[New process 15671]
#0 0x00000000004067dd in ShareBuffer<dns_data*>::remove_item (this=0x626aa0) at share_cycqueue.h:82
82 head_ %= size_;
head_
size_
这两个东西是在构造函数里初始化的
回复 hellioncu
--!我想存的是模版类,结果你都给初始成int型的了,这这这……
我试了,结果如下(core里的):
Program terminated with signal 8, Arithmetic exception.
[New process 15676]
[New process 15675]
[New process 15674]
[New process 15673]
[New process 15672]
[New process 15671]
#0 0x00000000004067dd in ShareBuffer<dns_data*>::remove_item (this=0x626aa0) at share_cycqueue.h:82
82 head_ %= size_;
head_
size_
这两个东西是在构造函数里初始化的
作者: jlccwss 发布时间: 2010-08-11
本帖最后由 hellioncu 于 2010-08-11 16:50 编辑
是用int去调用构造函数!
你不相信拉倒
把你的模板类简化了试
QUOTE:
回复 hellioncu
--!我想存的是模版类,结果你都给初始成int型的了,这这这……
我试了,结 ...
jlccwss 发表于 2010-08-11 16:43
--!我想存的是模版类,结果你都给初始成int型的了,这这这……
我试了,结 ...
jlccwss 发表于 2010-08-11 16:43
是用int去调用构造函数!
你不相信拉倒
把你的模板类简化了试
作者: hellioncu 发布时间: 2010-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28