【发布时间】:2013-12-21 17:28:03
【问题描述】:
我为处理队列的类编写了运算符 == 的重载。 在这个类中,我使用了一个模板,我要添加的第一个控件是模板类型的控件。
这是代码
bool operator==(const Queue<T>& queue)
{
NodoCS<T>* NodoA = First;
NodoCS<T>* NodoB = coda.First;
if (this->DimQueue() != coda.DimQueue())
return false;
else
{
for (int i = 0; i < DimQueue(); i++)
{
if (NodoA->Element() != NodoB->Element())
return false;
NodoA = NodoA->NextAddress();
NodoB = NodoB->NextAddress();
}
return true;
}
}
示例: 我有这个队列:
Queue<int> queue1 和 Queue<string> queue2
显然这些不相等,那么如何控制 int 与 string 不同?
我试过这样写函数的参数:
const Queue<T1>& queue
然后if(T != T1)....但这是错误的
【问题讨论】:
-
如果函数参数中的模板类型
T与Queue的元素类型相同,你甚至无法编译queue1 == queue2。 -
您希望能够将
Queue<string>与Queue<int>amd 进行比较,如果是,为什么?
标签: c++ templates types queue operator-keyword