为指针重载 push_back()

Overload push_back() for pointers

在我的例子中,我有一个 std::list<Ort*> ,其中 Ort 是一个自定义的 class 我做了 列表包含指向 Ort 对象的指针。

我喜欢使用 += 重载 list.push_back() 函数,这样我就可以 通过编写直接推送对象:

List<Ort*> Orte;
Ort* o = new Ort(..);

Orte+=o;

我试过的是:

void Navi::operator+=(const Ort& b)
{
    *this->Orte.push_back(b);
}

Navi 是一个 class,它包含列表 'Orte'。

但它告诉我它找不到正确的运算符重载 - 即我的参数不正确。

有人可以指出我做错了什么吗?

您的问题在于指针的常量性。 如果你看这里 Question about const pointer in C++?

您将看到将参数从 const Ort& b 更改为 Ort *const b 应该解决你的问题。 (因为您想将 const 指针推回到列表)。