我有一个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;


+ =原型看起来像这样:

Queue & operator+=(const Task & task);


它说“没有运算符+ =匹配这些操作数”。
如何使其运作?

最佳答案

在第二种情况下,您应该使用以下形式:

qq1->operator+=(t1);
qq1->operator+=(t2);
qq1->operator+=(t3);


要么

(*qq1) += t1;
(*qq1) += t2;
(*qq1) += t3;

09-04 18:14