c++ 语法问题 求帮助(c++primer中遇到的--!)
假设我定义了个类,取名为Queue(不是标准库的那个queue),是个类模板。 部分代码如下:
- C/C++ code
template <class Type> class Queue{ public: Queue():head(0),tail(0){}// default constructor template <class It> Queue(It beg,It end):head(0),tail(0){copy_elems(beg,end);} Queue(const Queue &Q):head(0),tail(0) {copy_elems(Q);} Queue& operator=(const Queue&);//我想在类模板的外部实现它,怎么写? ~Queue(){destroy();} template <class Iter> void assign(Iter beg,Iter end) { destroy(); copy_elems(beg,end); } Type& front(){return head->item;} const Type&front()const {return head->item;} void push(const Type&); void pop(); bool empty()const { return head==0; } private: QueueItem<Type> *head; QueueItem<Type> *tail; void destroy(); void copy_elems(const Queue&); template <class Iter> void copy_elems(Iter,Iter);};
我想在类的外部实现赋值操作符
是应该写成:
template <class Type>
Queue& Queue<Type>::operator=(......)
{
.........//省略
}
还是:
template <class Type>
Queue<Type>& Queue::operator=(......)
{
.........//省略
}
还是?
[解决办法]
你都试试看呀。看看编译器有何反应?
[解决办法]
感觉应该是第二种吧
[解决办法]
第二种
[解决办法]
这种问题是不是应该调试下呀 青年!
[解决办法]
好像都不 ,应该都要加
template <class Type>
Queue<Type>& Queue<Type>::operator=(......)
{
.........//省略
}
[解决办法]
第二种
[解决办法]