为指针重载 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 指针推回到列表)。
在我的例子中,我有一个 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 指针推回到列表)。