- 论坛徽章:
- 0
|
本帖最后由 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类中重载操作符才可以么?- 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;
- };
复制代码 |
|