读书人

c++ 语法有关问题 求帮助(c++primer中

发布时间: 2012-03-28 15:40:03 作者: rapoo

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=(......)
{
.........//省略
}

[解决办法]
第二种
[解决办法]
探讨
好像都不 ,应该都要加
template <class Type>
Queue<Type>& Queue<Type>::operator=(......)
{
.........//省略
}

读书人网 >C++

热点推荐