我有一个QueueSorted类,它存储了一个排序的对象列表(类Task)。
QueueSorted q1;
qq1+=t1; // adding object t1 to the list
qq1+=t2;
qq1+=t3;
上面的代码有效。
此代码不是:
QueueSorted *q1 = new QueueSorted();
qq1+=t1;
qq1+=t2;
qq1+=t3;
+ = prototype看起来像这样:
Queue & operator+=(const Task & task);
它说"没有运算符+ =匹配这些操作数"。 如何使它工作?
答案 0 :(得分:2)
在第二种情况下,您应该使用以下形式:
qq1->operator+=(t1);
qq1->operator+=(t2);
qq1->operator+=(t3);
或
(*qq1) += t1;
(*qq1) += t2;
(*qq1) += t3;
答案 1 :(得分:1)
您应该*
取消引用它,然后使用运算符:
*qq1 += t1;
否则编译器会尝试将+=
应用于指向QueueSorted的指针,该指针不适用。